use inquire::validator::ValueRequiredValidator;
use super::PromptError;
use super::SEP;
pub struct PromptPassword
{
message: String,
}
impl PromptPassword
{
pub fn new<S>(message: S) -> Self
where
S: AsRef<str>,
{
let inner = |message: &str| {
let message = format!("{message}{SEP}");
Self { message }
};
inner(message.as_ref())
}
pub fn prompt(self) -> Result<String, PromptError>
{
let Self { message } = self;
let response = inquire::Password::new(&message)
.with_validator(ValueRequiredValidator::default())
.prompt()?;
Ok(response)
}
}