如何让 clap 忽略结构中的特定字段?
How to make clap ignore a specific field in a struct?
我正在用 clap 构建我的 Rust CLI。
我有一个 struct
,其中包含所有命令行选项。这个结构被传递给很多函数。
现在我想向该结构添加一个字段,但不将该字段显示为命令行参数。我不想只为单个字段传递额外的结构。
是否有一些 clap 语法允许 clap 忽略结构中的字段,并将其设置为默认值?
这是一个示例结构:
#[derive(Parser, Debug)]
pub struct AlignPairwiseParams {
#[clap(long)]
#[clap(default_value_t = AlignPairwiseParams::default().min_length)]
pub min_length: usize,
// I would like this field to be not surface through the CLI. How to do this?
pub internal_use_only: bool,
}
是否存在类似 #[clap(ignore)]
的内容?
Arg Attributes
- ...
skip [= <expr>]
: Ignore this field, filling in with <expr>
- Without
<expr>
: fills the field with Default::default()
所以#[clap(skip)]
.
我正在用 clap 构建我的 Rust CLI。
我有一个 struct
,其中包含所有命令行选项。这个结构被传递给很多函数。
现在我想向该结构添加一个字段,但不将该字段显示为命令行参数。我不想只为单个字段传递额外的结构。
是否有一些 clap 语法允许 clap 忽略结构中的字段,并将其设置为默认值?
这是一个示例结构:
#[derive(Parser, Debug)]
pub struct AlignPairwiseParams {
#[clap(long)]
#[clap(default_value_t = AlignPairwiseParams::default().min_length)]
pub min_length: usize,
// I would like this field to be not surface through the CLI. How to do this?
pub internal_use_only: bool,
}
是否存在类似 #[clap(ignore)]
的内容?
Arg Attributes
- ...
skip [= <expr>]
: Ignore this field, filling in with<expr>
- Without
<expr>
: fills the field withDefault::default()
所以#[clap(skip)]
.