所选列表中的Rust Clap允许值

mdfafbf1  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(155)

我有一个变量

#[clap(
        group = "abc",
        long = "attribute1",
        value_name = "ATTRIBUTE1"
    )]
    attribute1: Option<String>,

我想强制用户attribute1只能提供一组可接受的值中的一个值?

acceptable_value = ["ABC", "QWERTY", "XYZ]

这可以作为clap变量属性的一部分来强制执行吗?还是在使用变量时,这需要作为代码中稍后执行的逻辑的一部分发生?
顺便说一句,使用 rust 拍手3.2

svmlkihl

svmlkihl1#

我假设你正在使用3.2.23
有(AFAIK)两种方式(都需要创建enum):
1.在enum上派生clap::ValueEnum(似乎是首选方法,因为解析器可以显示允许的值)
1.或者,实现FromStr trait(您可以使用strum crate来减少样板文件)

相关问题