4 个版本 (重大更改)

0.4.0 2023 年 12 月 18 日
0.3.0 2023 年 4 月 22 日
0.2.0 2023 年 4 月 22 日
0.1.0 2023 年 4 月 19 日

异步 中排名 299

Download history 66/week @ 2024-03-13 57/week @ 2024-03-20 61/week @ 2024-03-27 77/week @ 2024-04-03 60/week @ 2024-04-10 49/week @ 2024-04-17 59/week @ 2024-04-24 88/week @ 2024-05-01 49/week @ 2024-05-08 74/week @ 2024-05-15 111/week @ 2024-05-22 80/week @ 2024-05-29 68/week @ 2024-06-05 71/week @ 2024-06-12 47/week @ 2024-06-19 32/week @ 2024-06-26

每月下载量 229
5 个 Crates 中使用

MIT 许可证

69KB
729

Project Status: Active – The project has reached a stable, usable state and is being actively developed. CI Status codecov.io Minimum Supported Rust Version MIT License

GitHub | crates.io | 文档 | 问题 | 更新日志

大多数以文件路径作为参数的 CLI 命令遵循将 -(单个连字符/破折号)视为指向标准输入或标准输出的约定(根据路径是读取还是写入而定)。patharg crate 允许您的程序也遵循此约定:它提供 InputArgOutputArg 类型,这些类型封装了命令行参数,并提供从/写入给定路径或——如果参数仅是连字符——相应的标准流的方法。

InputArgOutputArg 实现了 From<OsString>From<String>FromStr,因此您可以使用它们与您最喜欢的 Rust 命令行参数源无缝结合,无论是 claplexopt,普通的 std::env::args/std::env::args_os,还是其他任何东西。源代码库包含了其中两个的示例

与 clio 的比较

我所知道的唯一一个提供与 patharg 类似功能的库是 clio。与 clio 相比,patharg 致力于成为一个更简单、更小的库,不试图过于聪明。这两个库之间的主要差异包括

  • 当创建一个 clio 路径实例时,clio 将根据所使用的类型立即打开路径——如果在处理参数期间构建输出文件,但在实际使用文件之前发生错误,这可能会导致不必要的空文件被留下——或者检查路径是否可以打开——这容易受到 TOCTTOU 错误的影响。而 patharg 不会这样做。

  • clio 支持从 HTTP(S) URL 读取和写入,并对 FIFO 进行特殊处理。而 patharg 则不需要这些多余的特性。

  • patharg 具有允许使用 tokio 进行异步 I/O 的功能。而 clio 则没有。

  • patharg 具有对 serde 的可选支持。而 clio 则没有。

依赖项

~0–1.7MB
~29K SLoC