9个版本 (4个破坏性更新)

0.5.1 2024年1月20日
0.5.0 2024年1月20日
0.4.0 2024年1月20日
0.3.0 2024年1月20日
0.1.1 2024年1月18日

#439 in 命令行界面

Download history 2/week @ 2024-06-29 41/week @ 2024-07-06 20/week @ 2024-07-27

每月61次下载

MIT许可协议

11KB
111 行代码(不包括注释)

promptis

一个Rust库,用于简化CLI中的用户输入。

示例

cargo run --example hello: 一个基本的“你好,世界”程序,用于读取用户的姓名

cargo run --example data: 一个程序,要求输入一条消息和一个数字,然后重复显示该消息这么多次

cargo run --example closing: 一个程序,演示用户可以通过输入提前结束程序

示例用法

// Prompt for the user's name and wait for them to respond with input
let name: String = Input::new().prompt("Enter your name: ").wait();

// Prompt the user for a number and wait for them to respond, 
// displaying the error if they input something else
let id: u32 = Input::new()
    .prompt("Enter a number: ")
    .err_msg("Not a number; please retry")
    .wait();

lib.rs:

简化CLI应用程序的用户输入

也查看示例

  • cargo run --example closing演示了如何提前退出程序
  • cargo run --example data演示了如何从用户那里获取数据
  • cargo run --example hello是一个基本的“你好,世界”程序

示例用法

let name: String = Input::new()
    .prompt("Enter your name: ")
    .wait();

println!("Hello, {}!", name);

您还可以为用户输入错误时设置错误消息。

let number: i32 = Input::new()
    .err_msg("That wasn't a number; please try again")
    .prompt("Enter a number: ")
    .wait();

println!("Your number is: {}", number);

您可以选择只获取第一个输入,不管它是否正确。

let number: Option<i32> = Input::new()
    .prompt("Enter a number: ")
    .read();

match number {
    Some(n) => println!("Your number is: {}"),
    None => println!("You didn't enter a number!")
}

您可以在输入时指定一个关键字,当输入该关键字时程序将结束。

let number: i32 = Input::new()
    .quit("quit") // this can result in the program ending early
    .prompt("Enter a number: ")
    .wait();

println!("Your number is: {}", number);

您可以为多个输入重用相同的输入对象。

let mut input = Input::new()
    .err_msg("Unexpected input; please retry")
    .quit("quit");

let name: String = input.prompt("Enter your name: ").wait();
let age: u32 = input.prompt("Enter your age: ").wait();
let weight: f64 = input.prompt("Enter your weight: ").wait();

println!("Name: {}\nAge: {}\nWeight: {}", name, age, weight);

无运行时依赖项