Enum std::path::Prefix 1.0.0[−][src]
pub enum Prefix<'a> {
Verbatim(&'a OsStr),
VerbatimUNC(&'a OsStr, &'a OsStr),
VerbatimDisk(u8),
DeviceNS(&'a OsStr),
UNC(&'a OsStr, &'a OsStr),
Disk(u8),
}Expand description
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 std::path::{Component, Path, Prefix};
use std::path::Prefix::*;
use std::ffi::OsStr;
fn get_path_prefix(s: &str) -> Prefix {
let path = Path::new(s);
match path.components().next().unwrap() {
Component::Prefix(prefix_component) => prefix_component.kind(),
_ => panic!(),
}
}
assert_eq!(Verbatim(OsStr::new("pictures")),
get_path_prefix(r"\\?\pictures\kittens"));
assert_eq!(VerbatimUNC(OsStr::new("server"), OsStr::new("share")),
get_path_prefix(r"\\?\UNC\server\share"));
assert_eq!(VerbatimDisk(b'C'), get_path_prefix(r"\\?\c:\"));
assert_eq!(DeviceNS(OsStr::new("BrainInterface")),
get_path_prefix(r"\\.\BrainInterface"));
assert_eq!(UNC(OsStr::new("server"), OsStr::new("share")),
get_path_prefix(r"\\server\share"));
assert_eq!(Disk(b'C'), get_path_prefix(r"C:\Users\Rust\Pictures\Ferris"));RunVariants
Verbatim(&'a OsStr)Verbatim prefix, e.g., \\?\cat_pics.
Verbatim prefixes consist of \\?\ immediately followed by the given
component.
Tuple Fields of Verbatim
0: &'a OsStrVerbatim 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 :.
Tuple Fields of VerbatimDisk
0: u8DeviceNS(&'a OsStr)Device namespace prefix, e.g., \\.\COM42.
Device namespace prefixes consist of \\.\ immediately followed by the
device name.
Tuple Fields of DeviceNS
0: &'a OsStrPrefix 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.
Tuple Fields of Disk
0: u8Implementations
Determines if the prefix is verbatim, i.e., begins with \\?\.
Examples
use std::path::Prefix::*;
use std::ffi::OsStr;
assert!(Verbatim(OsStr::new("pictures")).is_verbatim());
assert!(VerbatimUNC(OsStr::new("server"), OsStr::new("share")).is_verbatim());
assert!(VerbatimDisk(b'C').is_verbatim());
assert!(!DeviceNS(OsStr::new("BrainInterface")).is_verbatim());
assert!(!UNC(OsStr::new("server"), OsStr::new("share")).is_verbatim());
assert!(!Disk(b'C').is_verbatim());RunTrait Implementations
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
Auto Trait Implementations
impl<'a> RefUnwindSafe for Prefix<'a>
impl<'a> UnwindSafe for Prefix<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more