3个版本 (破坏性更新)
0.3.0 | 2020年11月6日 |
---|---|
0.2.0 | 2019年9月28日 |
0.1.0 | 2019年6月4日 |
#184 在 #command-line-arguments
每月 22 次下载
用于 entrance
18KB
527 代码行
entrance
类型辅助命令行参数解析器
entrance
提供了解析命令行参数的类型辅助工具。
简单用法
use entrance::{Arguments, Options};
use std::env;
use std::path::PathBuf;
#[derive(Options, PartialEq)]
enum Opts {
#[entrance(description = "Print help message")]
#[entrance(short = 'h')]
#[entrance(informative(entrance::help))]
Help,
#[entrance(description = "Print version infomation")]
#[entrance(informative(entrance::version))]
Version,
#[entrance(description = "Use verbose output")]
#[entrance(short = 'v')]
Verbose,
}
#[derive(Arguments)]
struct Args {
#[entrance(description = "The number of lines")]
num: f64,
#[entrance(description = "Path to a file")]
file: PathBuf,
}
type Command = entrance::Command<Opts, Args>;
fn main() {
let command = Command::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"));
let (opts, args) = command.parse_or_exit(env::args());
if opts.contains(&Opts::Verbose) {
println!("enabled the verbose output");
}
println!("1st argument: \"{}\"", args.num);
println!("2nd argument: \"{}\"", args.file.display());
}
结构体和特质
命令
此结构体提供了解析命令行参数的工具。
在解析命令行参数之前,需要使用关联函数 new
创建实例,然后调用实例的 parse
。
选项
为此提供了 derive宏。
限制:derive宏仅支持没有字段的枚举的变体。
参数
为此提供了 derive宏。
限制:该宏仅支持具有实现 FromStr
成员的结构体。
依赖项
~1.5MB
~35K SLoC