Trait Components

Source
pub trait Components<'a>:
    AsRef<[u8]>
    + Clone
    + Debug
    + PartialEq
    + Eq
    + PartialOrd
    + Ord
    + Iterator<Item = Self::Component>
    + DoubleEndedIterator<Item = Self::Component>
    + FusedIterator
    + Sized
    + Sealed {
    type Component: Component<'a>;

    // Required methods
    fn as_bytes(&self) -> &'a [u8] ;
    fn is_absolute(&self) -> bool;
    fn has_root(&self) -> bool;
}
Expand description

Interface of an iterator over a collection of Components

Required Associated Types§

Source

type Component: Component<'a>

Type of Component iterated over

Required Methods§

Source

fn as_bytes(&self) -> &'a [u8]

Extracts a slice corresponding to the portion of the path remaining for iteration

Source

fn is_absolute(&self) -> bool

Reports back whether the iterator represents an absolute path

The definition of an absolute path can vary:

  • On Unix, a path is absolute if it starts with the root, so is_absolute and has_root are equivalent.

  • On Windows, a path is absolute if it has a prefix and starts with the root: c:\windows is absolute, while c:temp and \temp are not.

Source

fn has_root(&self) -> bool

Returns true if the iterator represents a path that has a root.

The definition of what it means for a path to have a root can vary:

  • On Unix, a path has a root if it begins with /.

  • On Windows, a path has a root if it:

    • has no prefix and begins with a separator, e.g., \windows
    • has a prefix followed by a separator, e.g., c:\windows but not c:windows
    • has any non-disk prefix, e.g., \\server\share

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§