#input #prompt #check #ask #user #user-input #field-set

asker

流畅地获取和检查用户输入

3 个版本 (重大变更)

0.3.0 2022年3月5日
0.2.0 2022年3月2日
0.1.0 2022年2月28日

#17 in #ask

MIT 许可证

13KB
287 代码行数(不包括注释)

asker

输入提示,适用于 Rust

安装

[dependencies]
asker = "0.3.0"

使用方法

要获取完整指南,请查看 GUIDE.md示例

    use asker::ask::Regex;
    use asker::ask;
    use asker::ask::FieldSet;

    // This example demonstrates basic usage, and main features

    fn main(){
        let fields: FieldSet = vec![
            ("email", vec![""], Some(Regex::new(r".*@gmail.com").unwrap())),
            ("username", vec!["req: Must be only lower-case letters", "default:uglyoctopus"], Some(Regex::new(r"^\p{Ll}+$").unwrap())),
            ("Are you logged?", vec!["isbool", "id:islogged"], None),
            ("password", vec!["hidden", "confirm"], None),
            ("In which year were you born", vec!["id:birth","default:1999"], Some(Regex::new(r"^\p{Nd}+$").unwrap())),
            ("Do you agree to the Terms of Service?", vec!["id:terms", "isbool", "default:true"], None),
        ];
        let (mut f, mut b) = ask::ask(fields);

        println!("\nString results");

        for (index, value) in f.iter_mut() {
            println!("{} --> {}", index, value);
        }

        println!("\nBool results");

        for (index, value) in b.iter_mut() {
            println!("{} --> {}", index, value);
        }

        println!("");
    }

输出

image

依赖关系

~3.5–5MB
~89K SLoC