pub struct Password<'a> { /* private fields */ }
Expand description
Renders a password input prompt.
Example
use dialoguer::Password;
fn main() {
let password = Password::new()
.with_prompt("New Password")
.with_confirmation("Confirm password", "Passwords mismatching")
.interact()
.unwrap();
println!("Your password length is: {}", password.len());
}
Implementations§
source§impl Password<'_>
impl Password<'_>
sourcepub fn with_prompt<S: Into<String>>(self, prompt: S) -> Self
pub fn with_prompt<S: Into<String>>(self, prompt: S) -> 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 19 20 21
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.chars().count() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!(
"Your password is {} characters long",
password.chars().count()
);
}
sourcepub fn report(self, val: bool) -> Self
pub fn report(self, val: bool) -> Self
Indicates whether to report confirmation after interaction.
The default is to report.
sourcepub fn with_confirmation<A, B>(self, prompt: A, mismatch_err: B) -> Selfwhere
A: Into<String>,
B: Into<String>,
pub fn with_confirmation<A, B>(self, prompt: A, mismatch_err: B) -> 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 19 20 21
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.chars().count() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!(
"Your password is {} characters long",
password.chars().count()
);
}
sourcepub fn allow_empty_password(self, allow_empty_password: bool) -> Self
pub fn allow_empty_password(self, allow_empty_password: bool) -> Self
Allows/Disables empty password.
By default this setting is set to false (i.e. password is not empty).
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 Ok()
, Err()
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 19 20 21
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.chars().count() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!(
"Your password is {} characters long",
password.chars().count()
);
}
source§impl<'a> Password<'a>
impl<'a> Password<'a>
sourcepub fn validate_with<V>(self, validator: V) -> Selfwhere
V: PasswordValidator + 'a,
V::Err: ToString,
pub fn validate_with<V>(self, validator: V) -> Selfwhere V: PasswordValidator + 'a, V::Err: ToString,
Registers a validator.
Example
use dialoguer::Password;
fn main() {
let password: String = Password::new()
.with_prompt("Enter password")
.validate_with(|input: &String| -> Result<(), &str> {
if input.chars().count() > 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 19 20 21
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.chars().count() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!(
"Your password is {} characters long",
password.chars().count()
);
}
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.
Example
use dialoguer::{theme::ColorfulTheme, Password};
fn main() {
let password = Password::with_theme(&ColorfulTheme::default())
.interact()
.unwrap();
}
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 19 20 21
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.chars().count() > 3 {
Ok(())
} else {
Err("Password must be longer than 3")
}
})
.interact()
.unwrap();
println!(
"Your password is {} characters long",
password.chars().count()
);
}
Trait Implementations§
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for Password<'a>
impl<'a> !Send for Password<'a>
impl<'a> !Sync for Password<'a>
impl<'a> Unpin for Password<'a>
impl<'a> !UnwindSafe for Password<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more