2 个版本 (1 个稳定版)
1.0.0 | 2023年5月7日 |
---|---|
0.1.0 | 2020年5月18日 |
#706 in 命令行界面
在 2 crates 中使用
15KB
178 行
scanpw
从标准输入读取密码
概览
scanpw
提供了一个宏和一个函数(用于更细粒度的错误处理),以安全的方式从标准输入读取密码。它扩展为一个返回 String
的表达式,因此它可以赋值给变量或直接使用。宏可以接受类似于 print
的参数,可以用来生成提示。
示例
简单提示
let password = scanpw!("Password: ");
这将生成如下提示(其中 _
代表用户开始输入的位置)
Password: _
无提示
let password = scanpw!();
格式化提示
let password = scanpw!("Password for {}: ", username);
自定义回显行为
如果 scanpw
的第一个参数是 Option<char>
类型的表达式,而不是字符串字面量,则用于设置自定义替换字符(例如 Some('X')
)或完全禁用回显(例如 None
)。例如
// Don't print a '*' for each character the user types
let echo_settings: Option<char> = None;
let password = scanpw!(echo_settings, "Password: ");
默认行为是对于每个输入的字符回显 *
。
依赖
~3–44MB
~650K SLoC