Rust Clapを使って実行時の引数を受け取る方法

Rustは勉強中
rustでコンパイルしたバイナリに対して、実行時にパラメータやオプションを渡したい時がある。
そんなときに、clapというライブラリを使ったので書き溜め。

広告

Clap

ClapはRust用コマンドライン引数パーサーです。
コマンドライン、コンソール、ターミナルアプリケーションを書く際に、コマンドライン引数やサブコマンドを解析するためのライブラリです。

今回使用しているバージョンは「3.0.0-beta.4」です。

cargo で追加

まずは、cargo addでライブラリを追加する。

または、Cargo.tomlに直書きする。

Builder Patternで

今回は、Builder Patternを使った方法にします。
macroを使うなど複数の方法があるのですが、Builder Patternのほうがより細かく扱えるのでこっちをよく使う。

versionについては、Cargo.tomlから取得するようにしている。
Appのビルドと、Argのビルドが重なっているので読みづらいかも。

Appでよく使う関数

Appでよく使う関数は
./application -h を実行した際に表示される値が多い。

  • version: バージョン情報を書く
  • author: 著者を書く
  • about: このアプリケーション情報を書く
  • arg: オプションやサブコマンドを書く(Arg)

Argでよく使う関数

Argは ./application -hでも出力されるし
実際のパーサーで使用される。

  • about: ヘルプ時に出力される内容を書く
  • short: ショートオプション
  • long: ロングオプション
  • value_name: ヘルプドキュメント内のオプションや位置引数の値の名前を書く
  • takes_value: 引数が実行時に値を取る場合、trueにする
  • default_value: 指定されていない場合の引数の値を書く

サンプルはこんな感じ。

引数の取得方法

実際にプログラム内で引数の値を参照する方法はこんな感じ。

その他、subcommandとか拡張性がとても高いので公式をどうぞ。



じゃあね〜〜〜〜。