![](/img/trans.png)
[英]Getting relative order of different command line options using clap & structopt
[英]Can you build a structopt parser that takes the rest of the command line (or multiple arguments)?
structopt
有一个巧妙的功能,它可以接受Vec<T>
的类型化参数,这将吞噬命令行的 rest。
#[structopt(long, short)]
values: Vec<u32>,
它还具有接受您创建的类型的能力,
如果字段类型没有
FromStr
实现,或者您想提供FromStr
以外的自定义解析方案,您可以使用parse(...)
提供自定义字符串解析器
您创建的类型是否可以不是标量并且具有多个值或包装Vec<T>
是否有一种方法可以为包装Vec<T>
但对其重新排序的类型创建自定义解析器arguments 或包含更多的结构不止一个字段,例如像这样
struct Positionals {
first: String,
increment: String,
last: String
}
我需要一个不同的结构,因为 arguments 名称取决于顺序,(如果有一个参数,它只是“最后一个”,如果有两个 arguments 第一个参数不是最后一个,它是“第一个”,第二个参数是“最后一个” ). 我想知道是否有一种方法可以编写理解这些细微差别(如上所述)的解析器,或者可以重新排序向量以适应它们。
我不相信这是目前可能的。 我为获取vec::Drain
的解析器或获取命令行的 rest 的解析器打开了一个 RFC 。 我还询问了其他方法来实现这一点。 回应是,
据我所知,
clap
基础结构(structopt
仅在 struct 属性之上公开)不支持这一点。 clap 中的验证器(在structopt
中被命名为解析器,因为它们验证和解析)是在每个参数上实现的,而不是在一组 arguments 上实现的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.