2个不稳定版本

0.2.0 2021年7月27日
0.1.0 2021年7月27日

#170 in Windows API

MIT/Apache

17KB
525

Windows命令行作为字符串传递给应用程序。为了获取参数数组,需要解析这个字符串,这正是这个crate所做的事情。然后可以使用这些参数列表来由更高级别的参数解析器使用。

它使用最新的C/C++解析规则,以确保与使用C/C++程序中的argv一致。

使用

将此内容添加到您的Cargo.toml文件

[dependencies.winarg]
version = "0.2.0"

示例

for arg in winarg::args_native().skip(1) {
    if arg == "--help" {
        println!("help me!");
    }
}

lib.rs:

Windows命令行作为字符串传递给应用程序。为了获取参数数组,需要解析这个字符串,这正是这个crate所做的事情。然后可以使用这些参数列表来由更高级别的参数解析器使用。

它使用最新的C/C++解析规则,以确保与使用C/C++程序中的argv一致。

使用

将此内容添加到您的Cargo.toml文件

[dependencies.winarg]
version = "0.2.0"

示例

使用null_separated_list创建一个单个缓冲区来存储参数列表

let args: String = winarg::null_separated_list().collect();
for arg in args.split('\0') {
    println!("{}", arg);
}

使用args_native迭代参数而不分配

for arg in winarg::args_native().skip(1) {
    if arg == "--help" {
        println!("help me!");
    }
}

[struct@Parser]可用于创建自定义结构。例如

let mut parser = winarg::Parser();
// Skip the zeroth argument.
for t in &mut parser {
    if t.is_next_arg() { break; }
}
// Collect the rest into a UTF-16 encoded vector.
let args: Vec<u16> = parser.map(|t| t.as_u16() ).collect();

无运行时依赖