3个版本
使用旧的Rust 2015
0.1.2 | 2015年6月10日 |
---|---|
0.1.1 | 2015年6月9日 |
0.1.0 | 2015年6月9日 |
在#getopt中排名20
每月下载量25
用于 2 crates
58KB
1.5K SLoC
pgetopts
一个用于CLI工具的Rust库,用于选项解析,是Rust团队getopts的一个分支
用法
将此添加到您的Cargo.toml
[dependencies]
pgetopts = "0.1.0"
并将此添加到您的crate根目录
extern crate pgetopts;
lib.rs
:
简单的getopt替代品。
通过使用reqopt
、optopt
和optflag
构建选项向量,或者自己构建它们,并将它们传递给pgetopts
,同时传递一个实际的参数向量(不包括argv[0]
)。您将获得失败代码或匹配项。您需要验证匹配项中的“免费”参数数量是否如您所期望。使用opt_*
访问器从匹配对象中获取参数值。
单字符选项应出现在命令行上,前面有一个短划线;多字符选项应在两个短划线之后。需要参数的选项接受其参数在空格或等号之后。单字符选项不需要空格。
用法
此crate位于crates.io上,可以通过将pgetopts
添加到项目Cargo.toml
中的依赖项来使用。
[dependencies]
pgetopts = "0.2"
并将此添加到您的crate根目录
extern crate pgetopts;
示例
以下示例展示了简单命令行解析,该应用程序需要指定输入文件,接受可选输出文件名后跟-o
,并接受-h
和--help
作为可选标志。
extern crate pgetopts;
use pgetopts::Options;
use std::env;
fn do_work(inp: &str, out: Option<String>) {
println!("{}", inp);
match out {
Some(x) => println!("{}", x),
None => println!("No Output"),
}
}
fn print_usage(program: &str, opts: Options) {
println!("Usage: {} [options]", program);
print!("{}", opts.options());
}
fn main() {
let args: Vec<String> = env::args().collect();
let program = args[0].clone();
let mut opts = Options::new();
opts.optopt("o", "", "set output file name", "NAME");
opts.optflag("h", "help", "print this help menu");
let matches = match opts.parse(&args[1..]) {
Ok(m) => { m }
Err(f) => { panic!(f.to_string()) }
};
if matches.opt_present("h") {
print_usage(&program, opts);
return;
}
let output = matches.opt_str("o");
let input = if !matches.free.is_empty() {
matches.free[0].clone()
} else {
print_usage(&program, opts);
return;
};
do_work(&input, output);
}
依赖关系
~235KB