1 个稳定版本

1.0.0 2020 年 4 月 1 日

#572文件系统

Download history 1890/week @ 2023-12-06 1251/week @ 2023-12-13 794/week @ 2023-12-20 521/week @ 2023-12-27 1470/week @ 2024-01-03 1624/week @ 2024-01-10 1563/week @ 2024-01-17 1186/week @ 2024-01-24 1266/week @ 2024-01-31 1865/week @ 2024-02-07 1315/week @ 2024-02-14 1562/week @ 2024-02-21 1599/week @ 2024-02-28 1178/week @ 2024-03-06 2028/week @ 2024-03-13 1200/week @ 2024-03-20

6,263 每月下载量
4 crates 中使用

MIT/Apache

8KB
70

path_macro

Build Status Latest Version Rust Documentation

此库提供了 path!,一个用于使用 / 连接路径组件的宏。

[dependencies]
path_macro = "1.0"

详细信息

Python 的 pathlib.Path 通过重载除法运算符提供了一个便捷的 API,用于从路径组件组合路径。

$ python3
>>> from pathlib import Path
>>> p = Path('a')
>>> q = p / 'b' / 'c'
>>> q
PosixPath('a/b/c')

path! 宏提供了一个类似的 API,用于 Rust 路径,而无需重载 PathPathBuf

use std::path::Path;

use path_macro::path;

fn main() {
    let p = path!(Path::new("a") / "x" / "y" / "z");

    #[cfg(unix)]
    assert_eq!(p, Path::new("a/x/y/z"));

    #[cfg(windows)]
    assert_eq!(p, Path::new("a\\x\\y\\z"));
}

先前的技术

rust-lang/rust#62989 中,通过指出 dtolnay/trybuild:src/path.rs 中存在 path! 宏,避免了在 PathPathBuf 上实现 Div 的想法。在 dtolnay/trybuild#46 中,库作者表示对将宏提取到独立的 crate 中不感兴趣,并鼓励其他人这样做。此 crate 就是那个。

许可证

根据您的选择,此库受 Apache 许可证 2.0 版或 MIT 许可证的许可。
除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交给此 crate 的任何贡献,均应按上述方式双重许可,不附加任何额外的条款或条件。

无运行时依赖项