自分用の備忘録

VimとかJSとか。やったことのメモ。自分のため。

CLIで対話形式に進められるCrate「inquire」を試す

よくある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とかあるので、必要に応じて使ってみると面白いものが作れると思います!