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不应分配值 - 如果它们存在,则解释为trueoption_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"} }。
从这里,我们可以查找这些值并在我们的程序中使用它们。