use super::PromptError;
use super::SEP;
pub struct PromptConfirm
{
message: String,
default: Option<bool>,
}
impl PromptConfirm
{
pub fn new<S>(message: S) -> Self
where
S: AsRef<str>,
{
let inner = |message: &str| {
let message = format!("{message}{SEP}");
Self {
message,
default: None,
}
};
inner(message.as_ref())
}
pub fn with_default(
mut self,
value: bool,
) -> Self
{
self.default = Some(value);
self
}
pub fn prompt(self) -> Result<bool, PromptError>
{
let Self { message, default } = self;
let mut prompt = inquire::Confirm::new(&message);
if let Some(default) = default
{
prompt = prompt.with_default(default);
}
let response = prompt.prompt()?;
Ok(response)
}
}