7个版本
0.2.1 | 2020年8月27日 |
---|---|
0.2.0 | 2020年8月27日 |
0.1.4 | 2020年4月13日 |
#29 in #parsed
16KB
108 行
pargs
命令行参数解析器
pargs - 命令行参数解析器
pargs的设计目标是简单地以定义的格式返回解析后的参数,以便于查找。
pargs支持三种常见的参数类型:命令、标志和选项。
使用pargs
使用pargs非常简单:定义程序需要的所有三种类型的参数,并将它们作为单个 Vec<String>
传递给 pargs::parse()
。 parse()
将返回一个按类别键控的 Matches
结构,以便您的应用程序可以轻松地解释它们。
成功解析的参数的返回值如下
- command_args:
Vec<String>
- flag_args:
Vec<String>
- option_args:
HashMap
定义
command_args
被定义为没有分配值的单个参数command_args
参数应无横杠输入flag_args
应为布尔值flag_args
不应分配值 - 如果它们存在,则解释为true
option_args
应分配值option_args
应用-
字符表示option_args
可以通过=
或参数和值之间的空格分配值
示例
以下示例展示了定义了所有三种类型的参数(命令、标志和选项)的简单程序。Pargs从 env::args()
接收一个 Vec<String>
,此时它会解析参数,并将它们以简单的数据结构返回给程序。
use std::env;
use pargs::Pargs;
let actual_args: Vec<String> = env::args().collect();
let command_args = vec![String::from("cool_command")];
let flag_args = vec![String::from("-h")];
let option_args = vec![String::from("-j"), String::from("-i")];
let parsed_args = Pargs::parse(actual_args, command_args, flag_args, option_args);
match parsed_args {
Ok(parsed_args) => println!("{:?}", parsed_args),
Err(parsed_args) => println!("{}", parsed_args),
}
如果我们使用 cargo run cool_command -h -j=test123 -i=test456
运行此程序,输出将如下 Matches { command_args: ["cool_command"], flag_args: ["-h"], option_args: {"-i": "test456", "-j": "test123"} }
。
从这里,我们可以查找这些值并在我们的程序中使用它们。