pub struct Password<'a> { /* private fields */ }
Expand description
Renders a password input prompt.
Example usage
use dialoguer::Password;
let password = Password::new().with_prompt("New Password")
.with_confirmation("Confirm password", "Passwords mismatching")
.interact()?;
println!("Length of the password is: {}", password.len());
Implementations§
source§impl<'a> Password<'a>
impl<'a> Password<'a>
sourcepub fn with_prompt<S: Into<String>>(&mut self, prompt: S) -> &mut Self
pub fn with_prompt<S: Into<String>>(&mut self, prompt: S) -> &mut Self
Sets the password input prompt.
Examples found in repository?
examples/password.rs (line 5)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
fn main() {
let password = Password::with_theme(&ColorfulTheme::default())
.with_prompt("Password")
.with_confirmation("Repeat password", "Error: the passwords don't match.")
.validate_with(|input: &String| -> Result<(), &str> {
if input.len() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!("Your password is {} characters long", password.len());
}
sourcepub fn report(&mut self, val: bool) -> &mut Self
pub fn report(&mut self, val: bool) -> &mut Self
Indicates whether to report confirmation after interaction.
The default is to report.
sourcepub fn with_confirmation<A, B>(
&mut self,
prompt: A,
mismatch_err: B
) -> &mut Selfwhere
A: Into<String>,
B: Into<String>,
pub fn with_confirmation<A, B>( &mut self, prompt: A, mismatch_err: B ) -> &mut Selfwhere A: Into<String>, B: Into<String>,
Enables confirmation prompting.
Examples found in repository?
examples/password.rs (line 6)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
fn main() {
let password = Password::with_theme(&ColorfulTheme::default())
.with_prompt("Password")
.with_confirmation("Repeat password", "Error: the passwords don't match.")
.validate_with(|input: &String| -> Result<(), &str> {
if input.len() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!("Your password is {} characters long", password.len());
}
sourcepub fn allow_empty_password(&mut self, allow_empty_password: bool) -> &mut Self
pub fn allow_empty_password(&mut self, allow_empty_password: bool) -> &mut Self
Allows/Disables empty password.
By default this setting is set to false (i.e. password is not empty).
sourcepub fn validate_with<V>(&mut self, validator: V) -> &mut Selfwhere
V: PasswordValidator + 'a,
V::Err: ToString,
pub fn validate_with<V>(&mut self, validator: V) -> &mut Selfwhere V: PasswordValidator + 'a, V::Err: ToString,
Registers a validator.
Example
let password: String = Password::new()
.with_prompt("Enter password")
.validate_with(|input: &String| -> Result<(), &str> {
if input.len() > 8 {
Ok(())
} else {
Err("Password must be longer than 8")
}
})
.interact()
.unwrap();
Examples found in repository?
examples/password.rs (lines 7-13)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
fn main() {
let password = Password::with_theme(&ColorfulTheme::default())
.with_prompt("Password")
.with_confirmation("Repeat password", "Error: the passwords don't match.")
.validate_with(|input: &String| -> Result<(), &str> {
if input.len() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!("Your password is {} characters long", password.len());
}
sourcepub fn interact(&self) -> Result<String>
pub fn interact(&self) -> Result<String>
Enables user interaction and returns the result.
If the user confirms the result is true
, false
otherwise.
The dialog is rendered on stderr.
Examples found in repository?
examples/password.rs (line 14)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
fn main() {
let password = Password::with_theme(&ColorfulTheme::default())
.with_prompt("Password")
.with_confirmation("Repeat password", "Error: the passwords don't match.")
.validate_with(|input: &String| -> Result<(), &str> {
if input.len() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!("Your password is {} characters long", password.len());
}
sourcepub fn interact_on(&self, term: &Term) -> Result<String>
pub fn interact_on(&self, term: &Term) -> Result<String>
Like interact
but allows a specific terminal to be set.
source§impl<'a> Password<'a>
impl<'a> Password<'a>
sourcepub fn with_theme(theme: &'a dyn Theme) -> Self
pub fn with_theme(theme: &'a dyn Theme) -> Self
Creates a password input prompt with a specific theme.
Examples found in repository?
examples/password.rs (line 4)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
fn main() {
let password = Password::with_theme(&ColorfulTheme::default())
.with_prompt("Password")
.with_confirmation("Repeat password", "Error: the passwords don't match.")
.validate_with(|input: &String| -> Result<(), &str> {
if input.len() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!("Your password is {} characters long", password.len());
}