1.0.0[][src]Enum async_std::path::Component

pub enum Component<'a> {
    Prefix(PrefixComponent<'a>),
    RootDir,
    CurDir,
    ParentDir,
    Normal(&'a OsStr),
}
This is supported on unstable only.

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.

Examples

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()),
]);

Variants

Prefix(PrefixComponent<'a>)
This is supported on unstable only.

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
This is supported on unstable only.

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
This is supported on unstable only.

A reference to the current directory, i.e., ..

ParentDir
This is supported on unstable only.

A reference to the parent directory, i.e., ...

Normal(&'a OsStr)
This is supported on unstable only.

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.

Methods

impl<'a> Component<'a>[src]

pub fn as_os_str(self) -> &'a OsStr[src]

This is supported on unstable only.

Extracts the underlying OsStr slice.

Examples

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"]);

Trait Implementations

impl<'a> Debug for Component<'a>[src]

impl<'a> Eq for Component<'a>[src]

impl<'a> Copy for Component<'a>[src]

impl<'a> PartialEq<Component<'a>> for Component<'a>[src]

impl<'_> AsRef<OsStr> for Component<'_>[src]

impl<'_> AsRef<Path> for Component<'_>1.25.0[src]

impl<'a> Ord for Component<'a>[src]

impl<'a> Clone for Component<'a>[src]

impl<'a> Hash for Component<'a>[src]

impl<'a> PartialOrd<Component<'a>> for Component<'a>[src]

Auto Trait Implementations

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<'a> RefUnwindSafe for Component<'a>

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]