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

Implementors§