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.
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"));
§1.0.0
Verbatim prefix, e.g., \\?\cat_pics
.
Verbatim prefixes consist of \\?\
immediately followed by the given component.
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.
Verbatim disk prefix, e.g., \\?\C:
.
Verbatim disk prefixes consist of \\?\
immediately followed by the drive letter and :
.
Device namespace prefix, e.g., \\.\COM42
.
Device namespace prefixes consist of \\.\
(possibly using /
instead of \
), immediately followed by the device name.
Prefix using Windowsâ Uniform Naming Convention, e.g. \\server\share
.
UNC prefixes consist of the serverâs hostname and a share name.
§1.0.0Prefix C:
for the given disk drive.
Determines if the prefix is verbatim, i.e., begins with \\?\
.
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());
1.0.0 · Source§ 1.0.0 · Source§ 1.0.0 · Source§ 1.0.0 · Source§ 1.0.0 · Source§ Source§
Tests for self
and other
values to be equal, and is used by ==
.
Tests for !=
. The default implementation is almost always sufficient, and should not be overridden without very good reason.
This method returns an ordering between
self
and
other
values if one exists.
Read more 1.0.0 · Source§Tests less than (for
self
and
other
) and is used by the
<
operator.
Read more 1.0.0 · Source§Tests less than or equal to (for
self
and
other
) and is used by the
<=
operator.
Read more 1.0.0 · Source§Tests greater than (for
self
and
other
) and is used by the
>
operator.
Read more 1.0.0 · Source§Tests greater than or equal to (for
self
and
other
) and is used by the
>=
operator.
Read more 1.0.0 · Source§ 1.0.0 · Source§ 1.0.0 · Source§RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4