#path #relative-path #path-slash

sugar_path

用于操作路径的糖函数

14 个版本 (3 个稳定版)

1.2.0 2024年4月9日
0.0.12 2023年2月28日
0.0.9 2022年11月15日
0.0.5 2022年5月29日
0.0.3 2022年3月19日

#157 in Rust 模式

Download history 733/week @ 2024-04-22 558/week @ 2024-04-29 693/week @ 2024-05-06 537/week @ 2024-05-13 589/week @ 2024-05-20 1678/week @ 2024-05-27 1068/week @ 2024-06-03 995/week @ 2024-06-10 672/week @ 2024-06-17 891/week @ 2024-06-24 690/week @ 2024-07-01 928/week @ 2024-07-08 1050/week @ 2024-07-15 1636/week @ 2024-07-22 1104/week @ 2024-07-29 1271/week @ 2024-08-05

5,159 每月下载量
用于 59 个crate (15 个直接使用)

MIT 许可证

22KB
272

sugar_path

document crate version MIT

用于操作路径的糖函数。

主要功能

  • SugarPath::as_pathT: Deref<Target = str> 转换为 Path,并允许您在 &strString 上直接使用 SugarPath 的方法。
use std::path::Path;
use sugar_path::SugarPath;
assert_eq!("foo".as_path().join("bar"), Path::new("foo/bar"));
assert_eq!("foo/./bar/../baz".normalize(), "foo/baz".as_path());
use sugar_path::SugarPath;
#[cfg(target_family = "unix")]
let p = "./hello/world".as_path();
#[cfg(target_family = "windows")]
let p = ".\\hello\\world".as_path();
assert_eq!(p.to_slash().unwrap(), "./hello/world");
assert_eq!(p.to_slash_lossy(), "./hello/world");
  • SugarPath::normalize 允许您通过删除不必要的 ... 路径段来规范化给定的路径。
use std::path::Path;
use sugar_path::SugarPath;
assert_eq!("foo/./bar/../baz".normalize(), "foo/baz".as_path());
use sugar_path::SugarPath;
assert_eq!("/base".relative("/base/project"), "..".as_path());
assert_eq!("/base".relative("/var/lib"), "../../base".as_path());
use sugar_path::SugarPath;
let cwd = std::env::current_dir().unwrap();
assert_eq!("hello/world".absolutize(), cwd.join("hello").join("world"));
use sugar_path::SugarPath;
#[cfg(target_family = "unix")]
{
  assert_eq!("./world".absolutize_with("/hello"), "/hello/world".as_path());
  assert_eq!("../world".absolutize_with("/hello"), "/world".as_path());
}
#[cfg(target_family = "windows")]
{
  assert_eq!(".\\world".absolutize_with("C:\\hello"), "C:\\hello\\world".as_path());
  assert_eq!("..\\world".absolutize_with("C:\\hello"), "C:\\world".as_path());
}
  • 有关更多详细信息,请参阅 SugarPath

无运行时依赖