[英]How to get clap to process a optional argument with multiple values with input like --list 1 2 3 without having to specify the flag multiple times
我认为这是由 clap 多个值支持的,但无法使其正常工作。 我想要一些命令,例如“do_something --list 1 2 3”,其中列表将导致结构中的字段设置为 [1, 2, 3]
我有以下代码,它确实适用于 do_something --list 1 --list 2 --list 3,但不适用于 --list 1 2 3 它给了我“错误:找到的参数'2'不是预期的,或在此上下文中无效”
我也试过 --list "1 2 3" 和 --list 1,2,3 但也有错误。
我还能够将多个值用作位置参数,但不能用作带有标志的选项。
--list 1 2 3 是 clap 支持的吗? 如果是这样,我的设置/代码或命令行输入中是否缺少某些内容?
use clap::Parser;
#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)]
pub struct Cli {
#[clap(short, long, value_parser)]
pub list: Option<Vec<i32>>,
}
fn main() {
let cli = Cli::parse();
println!("CLI is {:#?}",cli);
}
您正在寻找use_value_delimiter
设置。 设置use_value_delimiter = true
并将实际分隔符设置为与value_delimiter = ','
一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.