よくあるCLIで対話形式に進められるやつを付け加えたいなと思って調べてました。 Rustだと「inquire」というCrateを使えば、楽に実装できそうでした。
基本
[dependencies] inquire = "0.5.2"
テキスト
use inquire::Text; fn main() { let name = Text::new("What is your name?") .with_default("Bob") .prompt(); match name { Ok(name) => println!("Hello, {}!", name), Err(_) => println!("retry."), } }
これだけ。
Select
use inquire::{error::InquireError, Select}; fn main() { let colors = vec!["red", "green", "blue", "yellow"]; let color: Result<&str, InquireError> = Select::new("Select a color", colors).prompt(); match color { Ok(color) => println!("Selected {}", color), Err(err) => println!("Error: {}", err), } }
簡単だ・・・。
感想みたいなやつ
よくあるCLIのあれが簡単に実現できちゃいます。
他にもDateSelectとか、MultiSelectとかPasswordとかあるので、必要に応じて使ってみると面白いものが作れると思います!