This allows non-interactive environments to be better handled by the caller.
3BUFFCHQHO6GJ7NQ3274OZMMOWSGGUEQJWQWQHCTYYXGEGYQGFTAC
NEBSVXIASWSJO2CVU3VWRONIWJJDLL3VDS6WNKQBWQBRUUI7RSYAC
JUV7C6ET4ZQJNLO7B4JB7XMLV2YUBZB4ARJHN4JEPHDGGBWGLEVAC
QJC4IQITOQP65AFLA5CMH2EXHB6B3SOLW2XBV72U5ZQU2KOR2EIAC
BAH2JCJPTDXAE6XGSLIPBQZU4GQY65HI66Q4XTFNL65MV6VSNF2QC
use crate::{InteractionEnvironment, InteractionError, NON_INTERACTIVE_MESSAGE};
use crate::{InteractionEnvironment, InteractionError};
pub fn interact(self, environment: &InteractionEnvironment) -> Result<usize, InteractionError> {
pub fn interact( self, environment: &InteractionEnvironment, ) -> Result<Option<usize>, InteractionError> {
pub fn interact(
self,
environment: &InteractionEnvironment,
) -> Result<Option<usize>, InteractionError> {
Ok(prompt.interact()?)
Ok(Some(prompt.interact()?))
crate::InteractionContext::NonInteractive => panic!("{NON_INTERACTIVE_MESSAGE}"),
crate::InteractionContext::NonInteractive => Ok(None),
) -> Result<String, InteractionError> {
) -> Result<Option<String>, InteractionError> {
pub fn interact(self, environment: &InteractionEnvironment) -> Result<bool, InteractionError> {
pub fn interact( self, environment: &InteractionEnvironment, ) -> Result<Option<bool>, InteractionError> {
) -> Result<Option<bool>, InteractionError> {
const NON_INTERACTIVE_MESSAGE: &str = "Attempted to prompt the user in a non-interactive context";
use crate::{ InteractionContext, InteractionEnvironment, InteractionError, NON_INTERACTIVE_MESSAGE,};
use crate::{
InteractionContext, InteractionEnvironment, InteractionError, NON_INTERACTIVE_MESSAGE,
};
use crate::{InteractionContext, InteractionEnvironment, InteractionError};
#[must_use] pub const fn new() -> Self {
#[must_use]
pub const fn new() -> Self {
#[must_use] pub fn with_extension(mut self, extension: &str) -> Self {
pub fn with_extension(mut self, extension: &str) -> Self {
InteractionContext::NonInteractive => panic!("{NON_INTERACTIVE_MESSAGE}"),
InteractionContext::NonInteractive => Ok(None),