pub enum Component<'a> { Prefix(PrefixComponent<'a>), RootDir, CurDir, ParentDir, Normal(&'a OsStr), }
A single component of a path.
A Component
roughly corresponds to a substring between path separators (/
or \
).
This enum
is created by iterating over Components
, which in turn is created by the components
method on Path
.
use std::path::{Component, Path}; let path = Path::new("/tmp/foo/bar.txt"); let components = path.components().collect::<Vec<_>>(); assert_eq!(&components, &[ Component::RootDir, Component::Normal("tmp".as_ref()), Component::Normal("foo".as_ref()), Component::Normal("bar.txt".as_ref()), ]);
Prefix(PrefixComponent<'a>)
A Windows path prefix, e.g., C:
or \\server\share
.
There is a large variety of prefix types, see Prefix
's documentation for more.
Does not occur on Unix.
RootDir
The root directory component, appears after any prefix and before anything else.
It represents a separator that designates that a path starts from root.
CurDir
A reference to the current directory, i.e., .
.
ParentDir
A reference to the parent directory, i.e., ..
.
Normal(&'a OsStr)
A normal component, e.g., a
and b
in a/b
.
This variant is the most common one, it represents references to files or directories.
impl<'a> Component<'a>
[src]
pub fn as_os_str(self) -> &'a OsStr
[src]
Extracts the underlying OsStr
slice.
use std::path::Path; let path = Path::new("./tmp/foo/bar.txt"); let components: Vec<_> = path.components().map(|comp| comp.as_os_str()).collect(); assert_eq!(&components, &[".", "tmp", "foo", "bar.txt"]);
impl<'_> AsRef<OsStr> for Component<'_>
[src]
impl<'_> AsRef<Path> for Component<'_>
[src]1.25.0
impl<'a> Clone for Component<'a>
[src]
impl<'a> Copy for Component<'a>
[src]
impl<'a> Debug for Component<'a>
[src]
impl<'a> Eq for Component<'a>
[src]
impl<'a> Hash for Component<'a>
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
[src]1.3.0
impl<'a> Ord for Component<'a>
[src]
fn cmp(&self, other: &Component<'a>) -> Ordering
[src]
fn max(self, other: Self) -> Self
[src]1.21.0
fn min(self, other: Self) -> Self
[src]1.21.0
fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<'a> PartialEq<Component<'a>> for Component<'a>
[src]
impl<'a> PartialOrd<Component<'a>> for Component<'a>
[src]
fn partial_cmp(&self, other: &Component<'a>) -> Option<Ordering>
[src]
fn lt(&self, other: &Component<'a>) -> bool
[src]
fn le(&self, other: &Component<'a>) -> bool
[src]
fn gt(&self, other: &Component<'a>) -> bool
[src]
fn ge(&self, other: &Component<'a>) -> bool
[src]
impl<'a> StructuralEq for Component<'a>
[src]
impl<'a> StructuralPartialEq for Component<'a>
[src]
impl<'a> RefUnwindSafe for Component<'a>
impl<'a> Send for Component<'a>
impl<'a> Sync for Component<'a>
impl<'a> Unpin for Component<'a>
impl<'a> UnwindSafe for Component<'a>
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
fn borrow(&self) -> &TⓘNotable traits for &'_ mut F
impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized,
type Output = <F as Future>::Output;
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized,
type Item = <I as Iterator>::Item;
impl<R: Read + ?Sized, '_> Read for &'_ mut R
impl<W: Write + ?Sized, '_> Write for &'_ mut W
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
fn borrow_mut(&mut self) -> &mut TⓘNotable traits for &'_ mut F
impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized,
type Output = <F as Future>::Output;
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized,
type Item = <I as Iterator>::Item;
impl<R: Read + ?Sized, '_> Read for &'_ mut R
impl<W: Write + ?Sized, '_> Write for &'_ mut W
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/path/enum.Component.html