1 个稳定版本
1.0.0 | 2020 年 4 月 1 日 |
---|
#572 在 文件系统
6,263 每月下载量
在 4 crates 中使用
8KB
70 行
path_macro
此库提供了 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 路径,而无需重载 Path
或 PathBuf
。
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!
宏,避免了在 Path
和 PathBuf
上实现 Div
的想法。在 dtolnay/trybuild#46 中,库作者表示对将宏提取到独立的 crate 中不感兴趣,并鼓励其他人这样做。此 crate 就是那个。
许可证
根据您的选择,此库受 Apache 许可证 2.0 版或 MIT 许可证的许可。除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交给此 crate 的任何贡献,均应按上述方式双重许可,不附加任何额外的条款或条件。