hiopt
getopt/getopt_long for rust.
提供类似libc::getopt的功能.
- 单ascii字符的选项:
-a -b或者-ab,-c value或者-cvalue - 长字符串选项:
--long=value或者--long value - 选项结束标志:
-- - 不限制非选项的输入顺序:
-c value arg或者arg -c value
分别提供遍历选项和非选项的函数接口.
Example
use ;
let opts = options!; // ':' means the option requires an argument. 表示选项需要输入参数
let args = ;
let mut iter = opts.opt_iter;
assert_eq!; // opts[0].name = "a"
assert_eq!;
assert_eq!; // opts[1].name = "b"
assert_eq!; // opts[2].name = "long"
assert_eq!;
assert_eq!; // opts[1].name = "b"
assert_eq!;
let mut iter = opts.noopt_iter;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
可以结合hictor crate获取应用程序的命令行输入进行分析处理
Example
let opts = options!;
let args = unsafe ;
for opt in opts.opt_iter
for arg in opts.noopt_iter
0.1.4版本区分了options!和args数组引用和数组元素的引用,这样可以将命令行输入参数('static)保存下来.
0.1.5版本区分了options!和args元素的引用,options!元素的生命周期可能比args元素生命周期更短.
Example