rtlibs-utils 0.1.6

rtools library: utilities
Documentation
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)
    }
}