也就是说,通过use xx我们就可以使用clap中的特定功能。也就是把对应的功能引入到该作用域内。 定义了一个结构体,它使用clap::Parser的derive宏和command宏,并且只接受一个参数,即name。 #[derive(Parser)]/#[command(version, about)]不是Rust内置的宏,它们是由clap库自定义的过程宏(procedural macros)。 ❝...
在前端开发中我们一般使用import/require进行第三方库的引入,而在Rust中我们使用use来导入第三方库clap中的Parser trait。也就是说,通过use xx我们就可以使用clap中的特定功能。也就是把对应的功能引入到该作用域内。 定义了一个结构体,它使用 clap::Parser 的 derive 宏和command宏,并且只接受一个参数,即 name。
如果我们开启了 derive feature, 则我们也可以实现 ValueEnum 特征实现相同的功能 use clap::{arg, builder::PossibleValue, command, value_parser, ValueEnum}; #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord)] enum Mode { Fast, Slow, } // Can also be derived with feature flag `derive` im...
#[arg(short, long, value_name = "FILE")] config: Option<PathBuf>, /// Turn debugging information on #[arg(short, long, action = clap::ArgAction::Count)] debug: u8, #[command(subcommand)] command: Option<Commands>, } #[derive(Subcommand)] enum Commands { /// does testing things ...
这正是您所拥有的。页面:https://docs.rs/clap/4.3.9/clap/_derive/index.html ...
Part1一、clap_v3 本来是想用structOpt,但是看文档是这样描述的 由于clap v3 现已发布,并且 structopt 功能已集成(几乎按原样),因此 structopt 现在处于维护模式:不会添加新功能。 错误将被修复,文档改进将被接受。 11. 1 添加依赖 [dependencies] clap = { version ="4.2.7", features = ["derive","cargo...
这正是您所拥有的。页面:https://docs.rs/clap/4.3.9/clap/_derive/index.html ...
rs/clap/2.32.0/clap/struct.Arg.html#method.default_value 这可以用来获得您描述的行为:...
#[arg(short, long, default_value_t = 1)] count:u8, } fnmain() { letargs= Args::parse(); for_in0..args.count { println!("Hello {}!", args.name) } } 这个是官方文档中的例子, 这是使用derive派生的方式实现. 从这个例子中可以看到, clap的使用方式是: ...
derive的用法:https://docs.rs/clap/latest/clap/_derive/index.html #[arg(...)] short 自动取field name的首字母作为参数名。 也可以short = 'x'指定参数名。 long 自动把field name的下划线替换为-作为参数名。也可以long = "xxx"指定参数名。