Clapとは
コマンドラインの引数解析を行うRust用のライブラリです。
位置引数、フラグ、オプション、サブコマンドなどの解析が可能で、それぞれ細かい設定も指定することができる多機能さが特徴です。
この記事について
Clapについてざっと確認したので個人的な備忘的意味合いも含め、各種設定についてまとめてあります。
ここでは各設定の一覧のみ記載しています。導入方法や簡単な使い方については別記事で導入編をアップしていますのでこちらを参考にして下さい。
確認した環境やバージョンは以下の通りです。
- MacOSX 10.11.6 (El Capitan)
- rust 1.5.1
- clap 2.20.3
コマンドライン定義メソッド一覧
App
コマンドラインApplicationを作成するstruct。
new
App
インスタンスを生成するメソッド。引数は作成するApp名(バイナリと同名でなくてもよい)。
version
アプリケーションのバージョン番号を定義するメソッド。引数はバージョン番号。
Tips:
crate_version
マクロでCargo.toml
の値を参照して設定させることもできる。
author
作者名を定義するメソッド。引数は作者名。
Tips:
crate_authors
マクロでCargo.toml
の値を参照して設定させることもできる。
about
アプリケーションの説明文を定義するメソッド。引数は説明文。
Tips:
crate_description
マクロでCargo.toml
の値を参照して設定させることもできる。
usage
USAGEを定義するメソッド。引数はUSAGE。
Note: USAGEは通常は自動的に生成される。これを使用するとそのUSAGEを上書きすることになる。
help
ヘルプ全文を定義するメソッド。引数はヘルプ全文。
Note: ヘルプ文言は通常は自動的に生成される。これを使用するとその文言を上書きすることになる。
set_term_width
ヘルプ情報を折り返す端末幅を定義するメソッド。引数は端末幅。デフォルトは120(0は折り返しなし)。
この設定はグローバルに影響する。
Note: サブコマンド定義より前に定義される必要がある。
max_term_width
ヘルプ情報を折り返す最大端末幅を定義するメソッド。引数は最大端末幅。0は折り返しなし。
この設定はグローバルに影響する。
Note: サブコマンド定義より前に定義される必要がある。
template
ヘルプ情報の出力テンプレートを定義するメソッド。引数はテンプレート構文。
テンプレート構文には以下のタグを利用することができる(タグは{}
で囲う)。
Tag | Description |
---|---|
bin |
new メソッドまたはbin_name メソッドで定義した名称 |
version | バージョン情報 |
author | 作成者情報 |
about |
about メソッドで定義した文言 |
usage | USAGE文言 |
before-help |
before_help で定義した文言 |
after-help |
after_help で定義した文言 |
flags | 値を持たないオプション引数群 |
options | 値を持つオプション引数群 |
positionals | 位置引数群 |
subcommands | サブコマンド群 |
all-args | flags、options、positionals、subcommandsを全てヘッダ付きで表示する |
unified | オプション引数群(flagsとoptionsを統合して出力) |
before_help
自動生成されるヘルプ情報より前に表示する文言を定義するメソッド。引数は文言。
after_help
自動生成されるヘルプ情報より後に表示する文言を定義するメソッド。引数は文言。
help_short
自動で設定されるヘルプのショートコマンド-h
のh
を任意の文字に置き換えるメソッド。引数は置き換える文字。
version_short
自動で設定されるバージョンのショートコマンド-V
のV
を任意の文字に置き換えるメソッド。引数は置き換える文字。
setting
有効にするAppSettings
を設定するメソッド。引数は有効にしたいAppSettings
。
settings
有効にするAppSettings
を複数設定できるメソッド。引数は有効にしたいAppSettings
の配列。
これはsettingを複数回定義することと同義。
unset_setting
無効にするAppSettings
を設定するメソッド。引数は無効にしたいAppSettings
。
unset_settings
無効にするAppSettings
を複数設定できるメソッド。引数は無効にしたいAppSettings
の配列。
これはunset_settingを複数回定義することと同義。
global_setting
グローバルに有効にするAppSettings
を設定するメソッド。引数は有効にしたいAppSettings
。
子サブコマンドにも設定が適用される。
Note: 親方向へは適用されない。
global_settings
グローバルに有効にするAppSettings
を複数設定できるメソッド。引数は有効にしたいAppSettings
の配列。
これはglobal_settingを複数回定義することと同義。
arg
Arg
を定義するメソッド。引数はArg
インスタンス。
args
Arg
を複数定義できるメソッド。引数はArg
インスタンスの配列。
これはargを複数回定義することと同義。
arg_from_usage
Arg::from_usage
のシンタックスで引数を定義するメソッド。引数はシンタックス文字列。
Note: シンタックスで定義できる設定しか定義できない。
args_from_usage
Arg::from_usage
のシンタックスで引数を複数定義できるメソッド。引数はシンタックス文字列(1行に1引数)。
これはarg_from_usageを複数回定義することと同義。
group
ArgGroup
を定義するメソッド。引数はArgGroup
インスタンス。
groups
ArgGroup
を複数定義できるメソッド。引数はArgGroup
インスタンスの配列。
これはgroupを複数回定義することと同義。
subcommand
SubCommand
を定義するメソッド。引数はSubCommand
インスタンス。
subcommands
SubCommand
を複数定義できるメソッド。引数はSubCommand
インスタンスの配列。
これはsubcommandsを複数回定義することと同義。
alias
サブコマンドに別名を定義するメソッド。引数は別名。
この別名はヘルプに表示されない。
aliases
サブコマンドに別名を複数定義できるメソッド。引数は別名の配列。
これはaliasを複数回定義することと同義。
visible_alias
サブコマンドに別名を定義するメソッド。引数は別名。
この別名はヘルプに表示される。
visible_aliases
サブコマンドに別名を複数定義できるメソッド。引数は別名の配列。
これはvisible_aliasを複数回定義することと同義。
display_order
ヘルプに表示されるサブコマンドの表示順を定義するメソッド。引数は優先度を表す正の整数(0に近いほど上位に表示される)。デフォルトは999。
Arg
コマンドラインの引数を表現するstruct。
with_name
Arg
インスタンスを生成するメソッド。引数は引数名。
Note: 引数名は全てのArgに対してユニークでなければならない。
from_usage
シンタックス文字列からArg
インスタンスを生成するメソッド。引数はシンタックス文字列。
構文は以下。
[explicit name] [short] [long] [value names] [help string]
- explicit name
明示的に名称を定義する。
[]
で囲った場合はオプション、<>
で囲った場合は必須を意味する。定義の後に...
を付けた場合multipleであることを意味する。
Note: 省略された場合はlong->short->valuesの順を優先順として、指定された名称を引数の名称とする。
- short
ショートコマンドを定義する。
定義の後に...
を付けた場合multipleであることを意味する。
- long
ロングコマンドを定義する。
定義の後に...
を付けた場合multipleであることを意味する。
- values
引数の値を定義する。
explicit name、short、longいずれかの後にスペースまたは=
を付けて定義する。[]
または<>
で囲わなければならない。[]
で囲った場合はオプション、<>
で囲った場合は必須を意味する(ただし、explicit nameが定義されている場合はそちらの定義優先する)。定義の後に...
を付けた場合multipleであることを意味する。
- help string
ヘルプ情報を定義する。
''
で囲って記述する。
short
ショートコマンドを定義するメソッド。引数はショートコマンド名(単文字)。
Note: 文字列を渡してもエラーにはならず、最初の1文字が適用される)。
long
ロングコマンドを定義するメソッド。引数はロングコマンド名。
alias
ロングコマンドの別名を定義するメソッド。引数は別名。
この別名はヘルプに表示されない。
Note: longを定義していない場合は無効。
aliases
ロングコマンドの別名を複数定義できるメソッド。引数は別名の配列。
これはaliasを複数回定義することと同義。
visible_alias
ロングコマンドの別名を定義するメソッド。引数は別名。
この別名はヘルプに表示される。
Note: longを定義していない場合は無効。
visible_aliases
ロングコマンドの別名を複数定義できるメソッド。引数は別名の配列。
これはvisible_aliasを複数回定義することと同義。
help
ヘルプ文言を定義するメソッド。引数はヘルプ文言。
hidden
ヘルプへの出力可否を定義するメソッド。引数はboolean。
true: 出力しない、fales:出力する(デフォルト)
next_line_help
ヘルプ文言を引数表示の次の行に表示させるメソッド。引数はboolean。
true: 次行に出力、fales:横に出力(デフォルト)
display_order
ヘルプに表示される引数の表示順を定義するメソッド。引数は優先度を表す正の整数。
優先度は0に近いほど上位に表示される。デフォルトは999。
takes_value
引数が値を取ることを定義するメソッド。引数はboolean。
true: 値あり(位置引数の場合のデフォルト)、false: 値なし(オプション引数の場合のデフォルト)
value_name
ヘルプに表示する引数の値の名称を定義するメソッド。引数は値の名称。
Note: 暗黙的にtakes_valueにtrueが定義される。
value_names
ヘルプに表示する引数の値の名称を複数定義できるメソッド。引数は値の名称の配列。
これはvalue_nameを複数回定義することと同義。
Note: 暗黙的にtakes_valueにtrueが定義される。また、複数定義した場合は暗黙的にnumber_of_valuesに定義数が定義される。
default_value
デフォルトの値を定義するメソッド。引数はデフォルト値。
Note: 暗黙的にtakes_valueにtrueが定義される。
default_value_if
デフォルトの値を設定するための別の引数の条件を定義するメソッド。第1引数は別の引数名、第2引数は第1引数が取る値のオプショナル(第1引数が値を持たない場合はNone
)、第3引数はデフォルト値。
定義した別の引数が指定され、その値が定義した値だったならば(定義した値がNone
なら値の判定は無視される)、デフォルト値が使用される。
Note: 暗黙的にtakes_valueにtrueが定義される。
default_value_ifs
デフォルトの値を設定するための別の引数の条件を複数定義できるメソッド。引数はdefault_value_ifと同じ要素を持つタプルの配列。
定義した全ての条件が満たされたならば、最初に定義されたデフォルト値が使用される。
これはdefault_value_ifを複数回定義することと同義。
empty_values
値として空文字(""
、''
)を許可するメソッド。引数はbooleanを。
true: 空文字使用可能(デフォルト)、false: 使用不可。
Note: 暗黙的にtakes_valueにtrueが定義される。
possible_value
指定可能な値を定義するメソッド。引数は指定可能な値。
possible_values
指定可能な値を複数定義できるメソッド。引数は指定可能な値の配列。
これはpossible_valueを複数回定義することと同義。
hide_possible_values
possible_valueで定義された指定可能値をヘルプに出力させないメソッド。引数はboolean。
true: 非表示、false: 表示(デフォルト)
allow_hyphen_values
値が-
から始まることを許可するメソッド。引数はboolean。
true: 許可、false: 拒否(デフォルト)
index
位置引数の順序を定義するメソッド。引数はインデックス番号。
全ての位置引数に定義されなかった場合、定義順になる。
Note: 定義された場合、shortやlongは無視され、位置引数となる。また、インデックスが連番になっていない場合や定義されていない
Arg
が混在している場合はパニックを起こす。
required
この引数を必須に定義するメソッド。引数はboolean。
true: 必須、fales:任意(デフォルト)
required_if
この引数が必須となる別の引数の条件を定義するメソッド。第1引数は別の引数名、第2引数はその引数が取る値。
定義した別の引数が指定され、さらにその値が定義した値であるならば、この引数は必須となる。
required_ifs
この引数が必須となる別の引数の条件を複数定義できるメソッド。引数はタプル(別の引数名、その引数が取る値)の配列。
これはrequired_ifを複数回定義することと同義。
required_unless
この引数が必須でなくなる別の引数を定義するメソッド。引数は別の引数名。
定義した別の引数が指定されいるならば、この引数は必須ではなくなる。
required_unless_one
この引数が必須でなくなる別の引数を複数定義できるメソッド。引数は別の引数名の配列。
定義した別の引数群のうちどれか1つでも指定されているならば、この引数は必須ではなくなる。
これはrequired_unlessを複数回定義することと同義。
required_unless_all
この引数が必須でなくなる別の引数を複数定義できるメソッド。引数は別の引数名の配列。
定義した別の引数群が全て指定されているならば、この引数は必須ではなくなる。
requires
この引数を指定した場合に必須となる別の引数を定義するメソッド。引数は別の引数名。
この引数が指定されているならば、定義した別の引数は必須となる。
requires_all
この引数を指定した場合に必須となる別の引数を複数定義できるメソッド。引数は引数名の配列。
この引数が指定されているならば、定義した別の引数群は全て必須となる。
これはrequiresを複数回定義することと同義。
requires_if
この引数の値に応じて必須となる別の引数を定義するメソッド。第1引数は条件となる値、第2引数は別の引数名。
この引数の値が定義した値であるならば、定義した別の引数は必須となる。
requires_ifs
この引数の値に応じて必須となる別の引数を複数定義できるメソッド。引数はタプル(条件となる値、別の引数名)の配列。
これはrequires_ifを複数回定義することと同義。
conflicts_with
この引数と競合する別の引数を定義するメソッド。引数は別の引数名。
この引数が指定されているならば、定義した別の引数は指定できない(逆も同様)。
Note: 競合ルールは必須ルールよりも優先される。
Tips: 2つの引数を競合関係にする場合、片方のみconflicts_withを定義するだけでよい。
conflicts_with_all
この引数と競合する別の引数を複数定義できるメソッド。引数は引数名の配列。
これはconflicts_withを複数回定義することと同義。
overrides_with
この引数と互いにオーバーライドできる別の引数を定義するメソッド。引数は別の引数名。
この引数と定義した別の引数が共に指定されているならば、後に指定した引数が有効となり、前に指定した引数は無効化される。
Note: オーバーライドルールは競合ルールと必須ルールよりも優先される。
Tips: 2つの引数を競合関係にする場合、片方のみoverrides_withを定義するだけでよい。
overrides_with_all
この引数と互いにオーバーライドできる別の引数を複数定義するメソッド。引数は別の引数名の配列。
これはoverrides_withを複数回定義することと同義。
multiple
この引数が複数回指定することを許可するメソッド。引数はboolean。
true: 許可、false: 拒否(デフォルト)
-ddd
や-d -d -d
、-d val1 val2
、-d val1 -d val2
といった指定が可能になる。
Note: 値を持つオプションの場合は指定方法の違いによって、
ArgMatches
のoccurrences_of
の結果が異なる。-d val1 -d val2
はoccurrences_of
の結果は2
になるが、-d val1 val2
は1
になる。
number_of_values
値の数を定義するメソッド。引数は値の数。
引数に指定した値の数が定義数に満たないならば、エラーとなる。
Note: 暗黙的にmultipleにtrueが定義される。
max_values
値の最大数を定義するメソッド。引数は最大数。
引数に指定した値の数が定義数を超えたならば、エラーとなる。
Note: オプション引数の場合、multipleは暗黙的にtrueを定義しない。それは
-o val1 val2
と指定するならばmultipleの設定が必要ない為であり、-o val1 -o val2
と指定することも可能にしたい場合は明示的にmultipleにtrueを定義しなければならない。位置引数の場合は暗黙的にmultipleにtrueが定義される。
min_values
値の最小数を定義するメソッド。引数は最小数。
引数に指定した値の数が定義数以上指定されないならば、エラーとなる。
Note: max_valuesと同じ理由により、オプション引数の場合はmultipleは暗黙的にtrueを定義しない。位置引数の場合は暗黙的にmultipleにtrueが定義される。
use_delimiter
値に区切り文字の使用を許可するメソッド。引数はboolean。
true: 使用可能、false: 使用不可(デフォルト)
-d val1,val2,val3
のように指定することが可能になる。これは-d val1 val2 val3
と同じ意味。
require_delimiter
値に区切り文字の使用を強制するメソッド。引数はboolean。
true: 強制、false: 任意(デフォルト)
複数の値を指定する場合、区切り文字を使用しなければならない。-d val1 val2 val3
のような指定はできなくなる。
value_delimiter
値の区切り文字を定義するメソッド。引数は区切り文字。デフォルトは,
Note: 暗黙的にuse_delimiterにtrue、takes_valueにtrueが定義される。
value_terminator
値の解析停止文字を定義するメソッド。引数は解析停止文字。
;
を定義したならば、-o val1 val2 ;
とすることで-o
オプションの値を明示的に示すことができる。
group
引数が属するArgGroup
を定義するメソッド。引数はグループ名。
同じグループ名で関連付けられた引数同士は同時に指定できなくなる。
groups
引数が属するArgGroup
を複数定義できるメソッド。引数はグループ名の配列。
これはgroupを複数回定義することと同義。
global
この引数の定義を全ての子サブコマンドに適用させるメソッド。引数はboolean。 true: サブコマンドに適用する、false: 適用しない(デフォルト) > Note: 親方向へは適用されない。validator
カスタムバリデーションを定義するメソッド。引数はバリデートする関数(Fn(String) -> Result<(), String> + 'static
)。
set
有効にするArgSettings
を設定するメソッド。引数は有効にしたいArgSettings
。
.set(ArgSettings::Grobal)
と.global(true)
は同義。
unset
無効にするArgSettings
を設定するメソッド。引数は無効にしたいArgSettings
。.set(ArgSettings::Grobal)
と.global(false)
は同義。
ArgGroup
引数グループを表現するstruct。
with_name
ArgGroup
インスタンスを生成するメソッド。引数はグループ名。
Note: グループ名は全てのグループに対してユニークでなければならない。
arg
引数グループに属する引数を定義するメソッド。引数は引数名。
args
引数グループに属する引数を複数定義できるメソッド。引数は引数名の配列。
これはargを複数回定義することと同義。
multiple
引数グループに属する引数を複数指定可能にするメソッド。引数はboolean。
true: 複数指定可能、false: 複数指定不可(デフォルト)
required
この引数グループのうち、1つ以上の設定を必須にするメソッド。引数はboolean。
true: 必須、false: 任意(デフォルト)
requires
この引数グループに属する引数を指定した場合に必須となる別の引数を定義するメソッド。引数は別の引数名。
この引数グループに属する引数が指定されているならば、定義した別の引数は必須となる。
requires_all
この引数グループに属する引数を指定した場合に必須となる別の引数を複数定義できるメソッド。引数は別の引数名の配列。
この引数グループに属する引数が指定されているならば、定義した別の引数群は全て必須となる。
これはrequiresを複数回定義することと同義。
conflicts_with
この引数グループと競合する別の引数を定義するメソッド。引数は別の引数名。
この引数グループに属する引数が指定されているならば、定義した別の引数は指定できない(逆も同様)。
conflicts_with_all
この引数グループと競合する別の引数を複数定義できるメソッド。引数は引数名の配列。
これはconflicts_withを複数回定義することと同義。
SubCommand
サブコマンドを表現するstruct。
生成されるインスタンスはApp
インスタンスになる。
with_name
App
インスタンスを生成するメソッド。引数はサブコマンド名。
AppSettings
アプリケーションレベルの設定要素を持つEnum。
AllowInvalidUtf8
無効なUTF-8コードポイントをエラーにしない設定。デフォルトは有効。
StrictUtf8
無効なUTF-8コードポイントが使用された場合にエラーにする設定。デフォルトは無効。
Note: windows以外で動作する。
AllowLeadingHyphen
位置引数やオプション引数の値に-
で始まる文字列の指定を許可する設定。デフォルトは無効。
AllowNegativeNumbers
位置引数やオプション引数の値に負の数値の指定を許可する設定。デフォルトは無効。
AllowLeadingHyphenと異なり、-
始まりを許可する文字列は数値のみに限定。
AllowMissingPositional
最後から2番目の位置引数がオプショナルで、最後の位置引数が必須のコマンド体系を許可する設定。デフォルトは無効。
最後に指定された引数を必須の位置引数として処理され、その前のオプショナルな引数が省略可能になる。
AllowExternalSubcommands
予期しない位置引数をサブコマンドとして解釈することを許可する設定。デフォルトは無効。
Note: サブコマンドの定義自体がなくてもエラーにならなくなる。
ArgsNegateSubcommands
サブコマンドの前に有効な引数の使用を拒否する設定。デフォルトは無効。
ArgRequiredElseHelp
引数を1つも指定されなかった場合にヘルプを表示する設定。デフォルトは無効。
Note:
Arg::default_value
が設定されている場合、この設定は無効になる。
SubcommandRequiredElseHelp
サブコマンドが指定されない場合、常にヘルプを表示する設定。デフォルトは無効。
Note: 親コマンドが存在し、それを指定されたとしても無視してヘルプを表示するようになる。
ColoredHelp
色付けされたヘルプを表示する設定。デフォルトは無効。
Note: この設定はUnix、Linux、OSXでのみ設定可能。
ColorAuto
コンソールまたはTTY接続の場合のみ出力を色付けする設定。デフォルトは有効。
ColorAlways
コンソール/TTY接続に関わらず出力を色付けする設定。デフォルトは無効。
ColorNever
コンソール/TTY接続に関わらず出力を色付けしない設定。デフォルトは無効。
DontCollapseArgsInUsage
USAGEにおける位置引数をARGS
に自動的にまとめさせない設定。デフォルトは無効。
TrailingVarArg
最後の位置引数がmultipleの場合、それより後に別の引数を定義させない(位置引数のmultipleな値として扱われる)設定。デフォルトは無効。
DontDelimitTrailingValues
TrailingVarArgを設定している場合、最後の位置引数に区切り文字を使用させない設定。デフォルトは無効。
DisableHelpSubcommand
通常自動的に作られるhelp
サブコマンドを作成させない設定。デフォルトは無効(自動生成される)。
DisableVersion
通常自動的に作られる-V
,--version
オプションを作成させない設定。デフォルトは無効(自動生成される)。
DeriveDisplayOrder
ヘルプに表示される引数やサブコマンドの順序を定義順にする設定。デフォルトは無効(アルファベット順)。
GlobalVersion
全ての子サブコマンドに対してトップレベルのバージョンを使用させる設定。デフォルトは無効。
Hidden
サブコマンドをヘルプに表示しない設定。デフォルトは無効。
これはサブコマンドで設定する。
HidePossibleValuesInHelp
Arg::possible_value
で定義された使用可能値をヘルプに表示しない設定。デフォルトは無効。
NoBinaryName
最初の引数がバイナリ名でないようする設定。デフォルトは無効。
NextLineHelp
ヘルプを引数表示の次の行に表示させる設定。デフォルトは無効。
PropagateGlobalValuesDown
グローバルな引数をサブコマンドにも伝搬させる設定。デフォルトは無効。
Arg::global
が定義された引数が指定されており、さらに子サブコマンドが指定されているならば、そのサブコマンドにもグローバル引数の指定を伝搬させる設定。デフォルトは無効。
SubcommandsNegateReqs
サブコマンドを使用した場合、親コマンドの全ての条件を無効にする設定。デフォルトは無効。
SubcommandRequired
サブコマンドの指定を必須にする設定。デフォルトは無効。
UnifiedHelpMessage
ヘルプのFLAGS
をOPTIONS
に統一して表示させる設定。デフォルトは無効(FLAGS
とOPTIONS
は分かれて表示させる)。
VersionlessSubcommands
全てのサブコマンドでバージョンを表示するコマンドを無効にする設定。デフォルトは無効。
これを設定した場合にサブコマンドで-V
や--version
を使用するとエラーとなる。
WaitOnError
エラーが起きた時、Press [ENTER]/[RETURN] to continue...
と表示し、終了前にユーザ操作を待つ設定。デフォルトは無効。
ArgSettings
引数レベルの設定要素を持つEnum。
Arg::set
やArg::unset
で指定可能な要素で構成される。
以下の要素を持つ。
- Required
- Multiple
- EmptyValues
- Global
- Hidden
- TakesValue
- UseValueDelimiter
- NextLineHelp
- RequireDelimiter
- HidePossibleValues
- AllowLeadingHyphen
Macros
crate_name
コンパイル時にCargo.tomlのnameを参照して自動でセットするマクロ。
App::new(crate_name!())
crate_version
コンパイル時にCargo.tomlのversionを参照して自動でセットするマクロ。
App::new("myapp")
.version(crate_version!())
crate_authors
コンパイル時にCargo.tomlのauthorsを参照して自動でセットするマクロ。引数にセパレータパターンを指定できる。デフォルトのパターンは:
。
App::new("myapp")
.author(crate_authors!(",\n"))
crate_description
コンパイル時にCargo.tomlのdescriptionを参照して自動でセットするマクロ。
App::new("myapp")
.about(crate_description!())
app_from_crate
コンパイル時にname、version、author、descriptionをCargo.tomlから参照して自動セットしたAppインスタンスを作成するマクロ。
let m = app_from_crate!()
...(各設定)
.get_matches();
コマンドライン解析メソッド一覧
App
get_matches
コマンドラインの解析を開始するメソッド。ArgMatches
を返す。
Note: 解析エラーがある場合は標準出力にエラーメッセージを表示し、メインプロセスは終了コード1で停止させる。
get_matches_safe
コマンドラインの解析を開始するメソッド。ArgMatches
とclap::Error
を持ったclap::Result
を返す。
解析エラーはclap::Error
に格納されて返される。メインプロセスは終了させない。
get_matches_from
コマンドラインの解析を開始するメソッド。引数はIntoIteratorトレイトを実装したもの(Vecなど)。ArgMatches
を返す。
引数に任意のコマンドを表現することで、そのコマンドを実行させることができる。
Note: 解析エラーがある場合は標準出力にエラーメッセージを表示し、メインプロセスは終了コード1で停止させる。
Note: 引数に渡すコマンドの最初の1つは、AppSettings::NoBinaryName
が適用されていない限り、バイナリ名を指定する必要がある。
get_matches_from_safe
コマンドラインの解析を開始するメソッド。引数はIntoIteratorトレイトを実装したもの(Vecなど)。ArgMatches
とclap::Error
を持ったclap::Result
を返す。
解析エラーはclap::Error
に格納されて返される。メインプロセスは終了させない。
ArgMatches
コマンドラインの解析結果が格納されたstruct。
value_of
引数の値を取得するメソッド。引数は取得したい引数名。
Note: 値を取らない引数を指定した場合、Noneが返る。
Note: 値に無効なUTF-8コードポイントが含まれている場合、panicを起こす。
Tips: 複数の値を取る引数を指定した場合、最初の値のみ取得できる。全ての値を取得したい場合はArgMatches::values_of
を使用する。
value_of_lossy
引数の値を取得するメソッド。引数は取得したい引数名。
値に無効なUTF-8コードポイントが含まれている場合、\u{FFFD}
に置き換えられる。
Note: 値を取らない引数を指定した場合、Noneが返る。
Tips: 複数の値を取る引数を指定した場合、最初の値のみ取得できる。全ての値を取得したい場合はArgMatches::values_of_lossy
を使用する。
value_of_os
引数の値を取得するメソッド。引数は取得したい引数名。
値に含まれるUTF-8コードポイントの有効/無効に関わらず、Option<&OsStr>
を取得する。
Note: 値を取らない引数を指定した場合、Noneが返る。
Tips: 複数の値を取る引数を指定した場合、最初の値のみ取得できる。全ての値を取得したい場合はArgMatches::values_of_os
を使用する。
values_of
引数の値を複数取得できるメソッド。引数は取得したい引数名。
Option<Values>
を取得する。Values
はstr
のIterator
トレイトを実装したstruct。
Note: 値を取らない引数を指定した場合、Noneが返る。
Note: 値に無効なUTF-8コードポイントが含まれている場合、panicを起こす。
values_of_lossy
引数の値を複数取得できるメソッド。引数は取得したい引数名。
Option<Vec<String>>
を取得する
値に無効なUTF-8コードポイントが含まれている場合、\u{FFFD}
に置き換えられる。
Note: 値を取らない引数を指定した場合、Noneが返る。
values_of_os
引数の値を複数取得できるメソッド。引数は取得したい引数名。
値に含まれるUTF-8コードポイントの有効/無効に関わらず、Option<OsValues>
を取得する。OsValues
はOsStr
のIterator
トレイトを実装したstruct。
Note: 値を取らない引数を指定した場合、Noneが返る。
is_present
引数が指定されたかどうかを判断するメソッド。引数は取得したい引数名。booleanが返る。
true: 指定されている、false: 指定されていない
occurrences_of
オプションの出現回数を取得するメソッド。引数は取得したいオプション名。
例えば、-o val1 val2
なら1、-o val1 -o val2
なら2が返る。
subcommand_matches
サブコマンドのArgMatches
を取得するメソッド。引数は取得したいサブコマンド名。
subcommand_name
この解析結果で指定されたサブコマンドの名称を取得するメソッド。
subcommand
この解析結果で指定されたサブコマンドの名称とArgMatches
を取得するメソッド。
名称とArgMatches
のタプルが返る。
usage
この解析結果が保持するUSAGE文字列を取得する。
その他メソッド一覧
App
get_name
App名を取得するメソッド。
get_bin_name
バイナリ名を取得するメソッド。
print_help
App
に定義されたヘルプを標準出力に出力するメソッド。
write_help
App
に定義されたヘルプを引数に与えたWriter(IO::Writeトレイとを実装したもの)に書き込むメソッド。
write_version
App
に定義されたバージョンを引数に与えたWriter(IO::Writeトレイとを実装したもの)に書き込むメソッド。
gen_completions
App
から補完ファイルを生成するメソッド。第1引数はバイナリ名、第2引数はShell
Enumの要素、第3引数は出力先。