#arguments-parser #argument #arg #parser #argv #getargs

getargs-os

getargs 提供了解析 OS 字符串的方法

2 个版本

0.1.1 2023年6月27日
0.1.0 2022年12月12日

#10 in #argv

MIT 许可证

16KB
222

getargs-os

OsStr 之上添加了一个新的类型包装器 (OsArgument),允许它被 getargs::Options 解析。

结合 argv crate,这允许跨所有平台进行最低成本的参数解析(在 Linux 上为零成本)。

这是一个独立的 crate,因为需要(非常)不安全代码。 std 不希望我们以任何方式干预 OsStr

使用方法

首先,以某种方式获取 OsStr 的迭代器 - 我再次推荐 argv - 然后将它们包装在 OsArgument 中,并将其传递给 Options::new

use getargs::Options;
use getargs_os::OsArgument;
let mut opts = Options::new(argv::iter().skip(1).map(<&OsArgument>::from));

然后像往常一样使用 Optionsgetargs::Options - 查看其文档以获取更多使用示例。

您可以使用 os! 宏来创建新的 OS 字符串以进行比较。此宏适用于所有操作系统。例如

while let Some(arg) = opts.next_arg().expect("some ooga booga just happened") {
	if arg == Arg::Long(os!("help")) {
		// print help...
	} else {
		// ...
	}
}

依赖项

~71KB