Expand description
Read a password from standard input
§Overview
scanpw provides a macro and a function (for more granular error handling)
to facilitate reading passwords from standard input in a secure manner. It
expands to an expression that returns a String, so it can be assigned to
a variable or used directly. The macro may take arguments like those to
print, which can be used to generate a prompt.
§Examples
§Simple prompt
let password = scanpw!("Password: ");This results in a prompt that looks like this (where _ represents where
the user will start typing):
Password: _§No prompt
let password = scanpw!();§Formatted prompt
let password = scanpw!("Password for {}: ", username);§Custom echo behavior
If the first argument to scanpw is an expression of type Option<char>
instead of a string literal, it is used to either set a custom replacement
character (like Some('X')) or disable echoing entirely (like None). For
example:
// Don't print a '*' for each character the user types
let echo_settings: Option<char> = None;
let password = scanpw!(echo_settings, "Password: ");The default behavior is to echo *s for each character entered.
Macros§
- scanpw
- Reads a password from standard input
Structs§
- Error
- Error setting up, reading, or shutting down
Functions§
- try_
scanpw - Attempts to read a password from standard input