我有一个变量
#[clap(
group = "abc",
long = "attribute1",
value_name = "ATTRIBUTE1"
)]
attribute1: Option<String>,
我想强制用户attribute1
只能提供一组可接受的值中的一个值?
acceptable_value = ["ABC", "QWERTY", "XYZ]
这可以作为clap变量属性的一部分来强制执行吗?还是在使用变量时,这需要作为代码中稍后执行的逻辑的一部分发生?
顺便说一句,使用 rust 拍手3.2
1条答案
按热度按时间svmlkihl1#
我假设你正在使用3.2.23。
有(AFAIK)两种方式(都需要创建
enum
):1.在
enum
上派生clap::ValueEnum
(似乎是首选方法,因为解析器可以显示允许的值)1.或者,实现
FromStr
trait(您可以使用strum
crate来减少样板文件)