Trait relative_path::PathExt
source · pub trait PathExt: Sealed {
// Required method
fn relative_to<P: AsRef<Path>>(
&self,
root: P
) -> Result<RelativePathBuf, RelativeToError>;
}Expand description
Extension methods for Path and PathBuf to for building and
interacting with RelativePath.
Required Methods§
sourcefn relative_to<P: AsRef<Path>>(
&self,
root: P
) -> Result<RelativePathBuf, RelativeToError>
fn relative_to<P: AsRef<Path>>( &self, root: P ) -> Result<RelativePathBuf, RelativeToError>
Build a relative path from the provided directory to self.
Producing a relative path like this is a logical operation and does not guarantee that the constructed path corresponds to what the filesystem would do. On Linux for example symbolic links could mean that the logical path doesn’t correspond to the filesystem path.
Examples
use std::path::Path;
use relative_path::{RelativePath, PathExt};
let baz = Path::new("/foo/bar/baz");
let bar = Path::new("/foo/bar");
let qux = Path::new("/foo/bar/qux");
assert_eq!(bar.relative_to(baz)?, RelativePath::new("../"));
assert_eq!(baz.relative_to(bar)?, RelativePath::new("baz"));
assert_eq!(qux.relative_to(baz)?, RelativePath::new("../qux"));
assert_eq!(baz.relative_to(qux)?, RelativePath::new("../baz"));
assert_eq!(bar.relative_to(qux)?, RelativePath::new("../"));