Enum Prefix
pub enum Prefix<'a>
Windows path prefixes, e.g., C: or \\server\share.
Windows uses a variety of path prefix styles, including references to drive
volumes (like C:), network shared folders (like \\server\share), and
others. In addition, some path prefixes are "verbatim" (i.e., prefixed with
\\?\), in which case / is not treated as a separator and essentially
no normalization is performed.
Examples
use ;
use *;
use OsStr;
# if cfg!
Variants
-
Verbatim(&'a OsStr) Verbatim prefix, e.g.,
\\?\cat_pics.Verbatim prefixes consist of
\\?\immediately followed by the given component.-
VerbatimUNC(&'a OsStr, &'a OsStr) Verbatim prefix using Windows' Uniform Naming Convention, e.g.,
\\?\UNC\server\share.Verbatim UNC prefixes consist of
\\?\UNC\immediately followed by the server's hostname and a share name.-
VerbatimDisk(u8) Verbatim disk prefix, e.g.,
\\?\C:.Verbatim disk prefixes consist of
\\?\immediately followed by the drive letter and:.-
DeviceNS(&'a OsStr) Device namespace prefix, e.g.,
\\.\COM42.Device namespace prefixes consist of
\\.\(possibly using/instead of\), immediately followed by the device name.-
UNC(&'a OsStr, &'a OsStr) Prefix using Windows' Uniform Naming Convention, e.g.
\\server\share.UNC prefixes consist of the server's hostname and a share name.
-
Disk(u8) Prefix
C:for the given disk drive.
Implementations
impl<'a> Prefix<'a>
fn len(&self) -> usizefn is_verbatim(&self) -> boolDetermines if the prefix is verbatim, i.e., begins with
\\?\.Examples
use *; use OsStr; assert!; assert!; assert!; assert!; assert!; assert!;fn is_drive(&self) -> boolfn has_implicit_root(&self) -> bool
Trait Implementations
impl<'a> Clone for Prefix<'a>
fn clone(&self) -> Self
impl<'a> Copy for Prefix<'a>
impl<'a> Debug for Prefix<'a>
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<'a> Eq for Prefix<'a>
fn assert_fields_are_eq(&self)
impl<'a> Hash for Prefix<'a>
fn hash<__H: Hasher>(&self, state: &mut __H)
impl<'a> Ord for Prefix<'a>
fn cmp(&self, other: &Self) -> Ordering
impl<'a> PartialEq for Prefix<'a>
fn eq(&self, other: &Self) -> bool
impl<'a> PartialOrd for Prefix<'a>
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
impl<'a> StructuralPartialEq for Prefix<'a>
impl<'a> TrivialClone for Prefix<'a>
Auto Trait Implementations
impl<'a> Freeze for Prefix<'a>
impl<'a> RefUnwindSafe for Prefix<'a>
impl<'a> Send for Prefix<'a>
impl<'a> Sync for Prefix<'a>
impl<'a> Unpin for Prefix<'a>
impl<'a> UnsafeUnpin for Prefix<'a>
impl<'a> UnwindSafe for Prefix<'a>
Blanket Implementations
impl<T> Any for Prefix<'a>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Prefix<'a>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Prefix<'a>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Prefix<'a>
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Prefix<'a>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> Printable for Prefix<'a>
where
T: Copy + Debug,
impl<T> SizeHint for Prefix<'a>
where
T: ?Sized,
fn lower_bound(&self) -> usizefn upper_bound(&self) -> Option<usize>
impl<T> SizedTypeProperties for Prefix<'a>
impl<T> ToOwned for Prefix<'a>
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for Prefix<'a>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Prefix<'a>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Prefix<'a>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>