4 个版本

0.4.1 2019年10月18日
0.4.0 2019年10月17日
0.3.1 2019年10月16日
0.3.0 2019年10月16日

#1466文件系统

MIT/Apache

33KB
709

智能 PathBuf

Build Status Latest Version Latest Version

rust 的 PathBuf 的包装器,增加了用于操作路径的便捷方法。 SmartPathBuf 具有与 PathBuf 相同的所有功能,并且更多,它是一个扩展,并将始终与 PathBuf 保持功能一致性。 SmartPathBuf 将添加一些开销,因为它需要保留更多信息,我将努力将其保持在尽可能低。

用法

smart-pathbuf = "0.4"

现在仅在夜间构建中存在的 PathBuf 方法现在位于功能标志之后,可以启用。

smart-pathbuf = { version = "0.3", features = ["unstable"] }

随着 std 库的稳定,这个 crate 也将稳定这些功能。

示例

不再需要多次调用 pop

use smart_path::SmartPathBuf;

let dir = std::env::current_dir().expect("failed");
let mut s_path = SmartPathBuf::from(&dir);
//or just s_path = SmartPathBuf::from(&dir);
// s_path.push(&dir);

s_path.push("to/file");
do_something(&s_path); // "current/dir/to/file"

// remove segments up to the initial path given
s_path.initial();
// or s_path.pop_last();
// "current/dir"
s_path.push("another/file");
do_more(&s_path);

SmartPathBuf 可以使用索引和范围进行操作。

 let mut path = SmartPathBuf::from("hello/world/bye");
 let p = path.range(..path.len() - 1);
 assert_eq!(p.as_path(), PathBuf::from("hello/world").as_path());

或者从中间切片到末尾 SmartPathBuf 将处理切片绝对路径,返回非绝对路径。

贡献

拉取请求建议 欢迎提交!

无运行时依赖