コードサンプル
バージョン
[dependencies]
clap = { version = "4.5.23", features = ["derive"] }
clapとは
引数パースを簡単にしてくれるクレート
clapのArgAction
-
ArgAction::SetTrue
フラグをセット -
ArgAction::SetFalse
フラグをリセット -
ArgAction::Set
値をセット -
ArgAction::Append
値を追加 -
ArgAction::Count
オプションが出た回数をカウント
位置引数
.required(true)
をつける
オプショナル引数
.short
と.long
をつける
ArgAction::Appendの複数受け取り
.num_args(1..)
コード例
use clap::{Arg, ArgAction, Command};
fn main() {
// CLIの構成
let matches = Command::new("Clap Sample")
.version("1.0")
.author("Your Name <youremail@example.com>")
.about("A simple CLI example using clap")
.arg(
Arg::new("first")
.help("The First Positional Argument")
.required(true) // 必須の位置引数
)
.arg(
Arg::new("second")
.help("The Second Positional Argument")
.required(false), // 任意の位置引数
)
.arg(
Arg::new("name")
.short('n')
.long("name")
.value_name("NAME")
.help("Sets a custom name")
.action(ArgAction::Set),
)
.arg(
Arg::new("debug")
.short('d')
.long("debug")
.value_name("DEBUG")
.help("Enables debug mode")
.action(ArgAction::SetTrue),
)
.arg(
Arg::new("list")
.short('l')
.long("list")
.value_name("List")
.help("List")
.action(ArgAction::Append)
.num_args(1..), // 1つ以上の値を受け取る
)
.get_matches();
...
}