Struct relative_path::RelativePath
[−]
[src]
pub struct RelativePath { /* fields omitted */ }
A borrowed, immutable relative path.
Methods
impl RelativePath
[src]
fn new<S: AsRef<str> + ?Sized>(s: &S) -> &RelativePath
[src]
Directly wraps a string slice as a RelativePath
slice.
fn as_str(&self) -> &str
[src]
Yields the underlying str
slice.
Examples
use relative_path::RelativePath; assert_eq!(RelativePath::new("foo.txt").as_str(), "foo.txt");
fn display(&self) -> Display
[src]
Returns an object that implements [Display
].
Examples
use relative_path::RelativePath; let path = RelativePath::new("tmp/foo.rs"); println!("{}", path.display());
fn join<P: AsRef<RelativePath>>(&self, path: P) -> RelativePathBuf
[src]
Creates an owned RelativePathBuf
with path adjoined to self.
Examples
use relative_path::RelativePath; let path = RelativePath::new("foo/bar"); assert_eq!("foo/bar/baz", path.join("baz"));
fn components(&self) -> Components
[src]
Iterate over all components in this relative path.
Examples
use relative_path::{Component, RelativePath}; let path = RelativePath::new("foo/bar/baz"); let mut it = path.components(); assert_eq!(Some(Component::Normal("foo")), it.next()); assert_eq!(Some(Component::Normal("bar")), it.next()); assert_eq!(Some(Component::Normal("baz")), it.next()); assert_eq!(None, it.next());
fn iter(&self) -> Iter
[src]
Produces an iterator over the path's components viewed as str
slices.
For more information about the particulars of how the path is separated
into components, see components
.
Examples
use relative_path::RelativePath; let mut it = RelativePath::new("/tmp/foo.txt").iter(); assert_eq!(it.next(), Some("tmp")); assert_eq!(it.next(), Some("foo.txt")); assert_eq!(it.next(), None)
fn to_relative_path_buf(&self) -> RelativePathBuf
[src]
Convert to an owned RelativePathBuf
.
fn to_path<P: AsRef<Path>>(&self, relative_to: P) -> PathBuf
[src]
Build an owned PathBuf
relative to path
for the current relative path.
Examples
use relative_path::RelativePath; use std::path::Path; let path = RelativePath::new("foo/bar").to_path(Path::new(".")); assert_eq!(Path::new("./foo/bar"), path);
fn parent(&self) -> Option<&RelativePath>
[src]
Returns a relative path, without its final component if there is one.
Examples
use relative_path::RelativePath; assert_eq!(Some(RelativePath::new("foo")), RelativePath::new("foo/bar").parent()); assert_eq!(None, RelativePath::new("foo").parent()); assert_eq!(None, RelativePath::new("").parent());
fn file_name(&self) -> Option<&str>
[src]
Returns the final component of the RelativePath
, if there is one.
If the path is a normal file, this is the file name. If it's the path of a directory, this is the directory name.
Returns None
If the path terminates in ..
.
Examples
use relative_path::RelativePath; assert_eq!(Some("bin"), RelativePath::new("usr/bin/").file_name()); assert_eq!(Some("foo.txt"), RelativePath::new("tmp/foo.txt").file_name()); assert_eq!(Some("foo.txt"), RelativePath::new("tmp/foo.txt/").file_name()); assert_eq!(Some("foo.txt"), RelativePath::new("foo.txt/.").file_name()); assert_eq!(Some("foo.txt"), RelativePath::new("foo.txt/.//").file_name()); assert_eq!(None, RelativePath::new("foo.txt/..").file_name()); assert_eq!(None, RelativePath::new("/").file_name());
fn strip_prefix<'a, P: ?Sized>(
&'a self,
base: &'a P
) -> Result<&'a RelativePath, StripPrefixError> where
P: AsRef<RelativePath>,
[src]
&'a self,
base: &'a P
) -> Result<&'a RelativePath, StripPrefixError> where
P: AsRef<RelativePath>,
Returns a relative path that, when joined onto base
, yields self
.
Errors
If base
is not a prefix of self
(i.e. starts_with
returns false
), returns Err
.
Examples
use relative_path::RelativePath; let path = RelativePath::new("test/haha/foo.txt"); assert_eq!(path.strip_prefix("test"), Ok(RelativePath::new("haha/foo.txt"))); assert_eq!(path.strip_prefix("test").is_ok(), true); assert_eq!(path.strip_prefix("haha").is_ok(), false);
fn starts_with<P: AsRef<RelativePath>>(&self, base: P) -> bool
[src]
Determines whether base
is a prefix of self
.
Only considers whole path components to match.
Examples
use relative_path::RelativePath; let path = RelativePath::new("etc/passwd"); assert!(path.starts_with("etc")); assert!(!path.starts_with("e"));
fn ends_with<P: AsRef<RelativePath>>(&self, child: P) -> bool
[src]
Determines whether child
is a suffix of self
.
Only considers whole path components to match.
Examples
use relative_path::RelativePath; let path = RelativePath::new("etc/passwd"); assert!(path.ends_with("passwd"));
fn with_file_name<S: AsRef<str>>(&self, file_name: S) -> RelativePathBuf
[src]
Creates an owned RelativePathBuf
like self
but with the given file name.
See RelativePathBuf::set_file_name
for more details.
Examples
use relative_path::{RelativePath, RelativePathBuf}; let path = RelativePath::new("tmp/foo.txt"); assert_eq!(path.with_file_name("bar.txt"), RelativePathBuf::from("tmp/bar.txt")); let path = RelativePath::new("tmp"); assert_eq!(path.with_file_name("var"), RelativePathBuf::from("var"));
fn file_stem(&self) -> Option<&str>
[src]
Extracts the stem (non-extension) portion of self.file_name
.
The stem is:
None
, if there is no file name;- The entire file name if there is no embedded
.
; - The entire file name if the file name begins with
.
and has no other.
s within; - Otherwise, the portion of the file name before the final
.
Examples
use relative_path::RelativePath; let path = RelativePath::new("foo.rs"); assert_eq!("foo", path.file_stem().unwrap());
fn extension(&self) -> Option<&str>
[src]
Extracts the extension of self.file_name
, if possible.
The extension is:
None
, if there is no file name;None
, if there is no embedded.
;None
, if the file name begins with.
and has no other.
s within;- Otherwise, the portion of the file name after the final
.
Examples
use relative_path::RelativePath; assert_eq!(Some("rs"), RelativePath::new("foo.rs").extension()); assert_eq!(None, RelativePath::new(".rs").extension()); assert_eq!(Some("rs"), RelativePath::new("foo.rs/.").extension());
fn with_extension<S: AsRef<str>>(&self, extension: S) -> RelativePathBuf
[src]
Creates an owned RelativePathBuf
like self
but with the given extension.
See RelativePathBuf::set_extension
for more details.
Examples
use relative_path::{RelativePath, RelativePathBuf}; let path = RelativePath::new("foo.rs"); assert_eq!(path.with_extension("txt"), RelativePathBuf::from("foo.txt"));
fn join_normalized<P: AsRef<RelativePath>>(&self, path: P) -> RelativePathBuf
[src]
Build an owned RelativePathBuf
, joined with the given path and normalized.
Examples
use relative_path::RelativePath; assert_eq!( RelativePath::new("foo/baz.txt"), RelativePath::new("foo/bar").join_normalized("../baz.txt").as_relative_path() ); assert_eq!( RelativePath::new("../foo/baz.txt"), RelativePath::new("../foo/bar").join_normalized("../baz.txt").as_relative_path() );
fn normalize(&self) -> RelativePathBuf
[src]
Return an owned RelativePathBuf
, with all non-normal components moved to the beginning of
the path.
This permits for a normalized representation of different relative components.
Normalization is a destructive operation if the path references an actual filesystem
path.
An example of this is symlinks under unix, a path like foo/../bar
might reference a
different location other than ./bar
.
Normalization is a logical operation that is only valid if the relative path is part of some context which doesn't have semantics that causes it to break, like symbolic links.
Examples
use relative_path::RelativePath; assert_eq!( RelativePath::new("../foo/baz.txt"), RelativePath::new("../foo/./bar/../baz.txt").normalize().as_relative_path() );
Trait Implementations
impl ToOwned for RelativePath
[src]
type Owned = RelativePathBuf
fn to_owned(&self) -> RelativePathBuf
[src]
Creates owned data from borrowed data, usually by cloning. Read more
fn clone_into(&self, target: &mut Self::Owned)
[src]
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl Debug for RelativePath
[src]
impl AsRef<RelativePath> for RelativePath
[src]
fn as_ref(&self) -> &RelativePath
[src]
Performs the conversion.
impl PartialEq for RelativePath
[src]
fn eq(&self, other: &RelativePath) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Eq for RelativePath
[src]
impl PartialOrd for RelativePath
[src]
fn partial_cmp(&self, other: &RelativePath) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Ord for RelativePath
[src]
fn cmp(&self, other: &RelativePath) -> Ordering
[src]
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.22.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.22.0[src]
Compares and returns the minimum of two values. Read more
impl Hash for RelativePath
[src]
fn hash<H: Hasher>(&self, h: &mut H)
[src]
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<'a, 'b> PartialEq<RelativePathBuf> for RelativePath
[src]
fn eq(&self, other: &RelativePathBuf) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<RelativePathBuf> for RelativePath
[src]
fn partial_cmp(&self, other: &RelativePathBuf) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<RelativePathBuf> for &'a RelativePath
[src]
fn eq(&self, other: &RelativePathBuf) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<RelativePathBuf> for &'a RelativePath
[src]
fn partial_cmp(&self, other: &RelativePathBuf) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<Cow<'a, RelativePath>> for RelativePath
[src]
fn eq(&self, other: &Cow<'a, RelativePath>) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<Cow<'a, RelativePath>> for RelativePath
[src]
fn partial_cmp(&self, other: &Cow<'a, RelativePath>) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<Cow<'a, RelativePath>> for &'b RelativePath
[src]
fn eq(&self, other: &Cow<'a, RelativePath>) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<Cow<'a, RelativePath>> for &'b RelativePath
[src]
fn partial_cmp(&self, other: &Cow<'a, RelativePath>) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<str> for RelativePath
[src]
fn eq(&self, other: &str) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<str> for RelativePath
[src]
fn partial_cmp(&self, other: &str) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<&'a str> for RelativePath
[src]
fn eq(&self, other: &&'a str) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<&'a str> for RelativePath
[src]
fn partial_cmp(&self, other: &&'a str) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<String> for RelativePath
[src]
fn eq(&self, other: &String) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<String> for RelativePath
[src]
fn partial_cmp(&self, other: &String) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<str> for &'a RelativePath
[src]
fn eq(&self, other: &str) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<str> for &'a RelativePath
[src]
fn partial_cmp(&self, other: &str) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<'a, 'b> PartialEq<String> for &'a RelativePath
[src]
fn eq(&self, other: &String) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'a, 'b> PartialOrd<String> for &'a RelativePath
[src]
fn partial_cmp(&self, other: &String) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more