2 个版本
0.2.3 | 2024年6月28日 |
---|---|
0.2.2 | 2024年6月28日 |
#371 in 命令行界面
每月下载量:39
31KB
388 行
命令行解析
cl_parse
是一个库,允许您定义命令行选项和参数,然后根据该定义解析命令行参数。
动机
cl_parse
的开发是为了允许现代命令行工具中最常见的命令行选项。它也旨在易于使用。以下是 cl_parse 中实现的功能。
- 选项别名。例如:-f, --file
- 具有负值的选项。例如:--increment -1
- 标志连接。即:-xvgf 等同于 -x -v -g -f
- 自动生成使用说明
- 自动生成帮助说明
- 默认提供 -h, --help 输出
- 检测选项的缺失值
- 定义必需选项的能力
- 选项和参数验证。即只能使用定义的选项和参数
- 无序选项和参数
- 检索目标类型中的选项或参数。例如:i32,String 等。
示例
use std::env;
use cl_parse::CommandLineDef;
let cl = CommandLineDef::new()
.add_flag(vec!["-b","--boolean"], "A boolean value")
.add_flag(vec!["-f","--faux"], "Another boolean value")
.add_option(vec!["-n","--num"], Some("num"), None, "A required numeric value")
.add_argument("arg-0")
.add_argument("arg-1")
.add_argument("arg-2")
.parse(env::args());
// The asserts assume the following commandline
// program arg1 --boolean arg2 -n -1 arg3
assert_eq!(cl.program_name(), "program");
// aliases are updated
let b:bool = cl.option("-b");
assert_eq!(b, true);
let boolean:bool = cl.option("--boolean");
assert_eq!(boolean, true);
// flags default to false
let f:bool = cl.option("-f");
assert_eq!(f, false);
// all aliased are updated
let faux:bool = cl.option("--faux");
assert_eq!(faux,false);
let n:i16 = cl.option("-n");
assert_eq!(n, -1);
assert_eq!(cl.arguments(), 3);
let arg0:String = cl.argument(0);
assert_eq!(arg0, "arg1");
let arg1:String = cl.argument(1);
assert_eq!(arg1, "arg2");
let arg2:String = cl.argument(2);
assert_eq!(arg2, "arg3");
依赖项
~38KB