pub struct AbsPathBuf(/* private fields */);Expand description
A Utf8PathBuf that is guaranteed to be absolute.
Implementations§
Source§impl AbsPathBuf
impl AbsPathBuf
Sourcepub fn assert(path: Utf8PathBuf) -> AbsPathBuf
pub fn assert(path: Utf8PathBuf) -> AbsPathBuf
Sourcepub fn assert_utf8(path: PathBuf) -> AbsPathBuf
pub fn assert_utf8(path: PathBuf) -> AbsPathBuf
Sourcepub fn as_path(&self) -> &AbsPath
pub fn as_path(&self) -> &AbsPath
Coerces to an AbsPath slice.
Equivalent of Utf8PathBuf::as_path for AbsPathBuf.
Sourcepub fn pop(&mut self) -> bool
pub fn pop(&mut self) -> bool
Equivalent of Utf8PathBuf::pop for AbsPathBuf.
Note that this won’t remove the root component, so self will still be
absolute.
Sourcepub fn push<P: AsRef<Utf8Path>>(&mut self, suffix: P)
pub fn push<P: AsRef<Utf8Path>>(&mut self, suffix: P)
Equivalent of PathBuf::push for AbsPathBuf.
Extends self with path.
If path is absolute, it replaces the current path.
On Windows:
- if
pathhas a root but no prefix (e.g.,\windows), it replaces everything except for the prefix (if any) ofself. - if
pathhas a prefix but no root, it replacesself. - if
selfhas a verbatim prefix (e.g.\\?\C:\windows) andpathis not empty, the new path is normalized: all references to.and..are removed.
pub fn join(&self, path: impl AsRef<Utf8Path>) -> Self
Methods from Deref<Target = AbsPath>§
Sourcepub fn parent(&self) -> Option<&AbsPath>
pub fn parent(&self) -> Option<&AbsPath>
Equivalent of Utf8Path::parent for AbsPath.
Sourcepub fn absolutize(&self, path: impl AsRef<Utf8Path>) -> AbsPathBuf
pub fn absolutize(&self, path: impl AsRef<Utf8Path>) -> AbsPathBuf
Equivalent of Utf8Path::join for AbsPath with an additional normalize step afterwards.
Sourcepub fn join(&self, path: impl AsRef<Utf8Path>) -> AbsPathBuf
pub fn join(&self, path: impl AsRef<Utf8Path>) -> AbsPathBuf
Equivalent of Utf8Path::join for AbsPath.
Sourcepub fn normalize(&self) -> AbsPathBuf
pub fn normalize(&self) -> AbsPathBuf
Normalize the given path:
- Removes repeated separators:
/a//bbecomes/a/b - Removes occurrences of
.and resolves... - Removes trailing slashes:
/a/b/becomes/a/b.
§Example
let abs_path_buf = AbsPathBuf::assert("/a/../../b/.//c//".into());
let normalized = abs_path_buf.normalize();
assert_eq!(normalized, AbsPathBuf::assert("/b/c".into()));Sourcepub fn to_path_buf(&self) -> AbsPathBuf
pub fn to_path_buf(&self) -> AbsPathBuf
Equivalent of Utf8Path::to_path_buf for AbsPath.
pub fn canonicalize(&self) -> !
Sourcepub fn strip_prefix(&self, base: &AbsPath) -> Option<&RelPath>
pub fn strip_prefix(&self, base: &AbsPath) -> Option<&RelPath>
Equivalent of Utf8Path::strip_prefix for AbsPath.
Returns a relative path.
pub fn starts_with(&self, base: &AbsPath) -> bool
pub fn ends_with(&self, suffix: &RelPath) -> bool
pub fn name_and_extension(&self) -> Option<(&str, Option<&str>)>
pub fn file_name(&self) -> Option<&str>
pub fn extension(&self) -> Option<&str>
pub fn file_stem(&self) -> Option<&str>
pub fn as_os_str(&self) -> &OsStr
pub fn as_str(&self) -> &str
pub fn display(&self) -> !
use Display instead
pub fn exists(&self) -> !
use std::fs::metadata().is_ok() instead
pub fn components(&self) -> Utf8Components<'_> ⓘ
Trait Implementations§
Source§impl AsRef<AbsPath> for AbsPathBuf
impl AsRef<AbsPath> for AbsPathBuf
Source§impl AsRef<OsStr> for AbsPathBuf
impl AsRef<OsStr> for AbsPathBuf
Source§impl AsRef<Path> for AbsPathBuf
impl AsRef<Path> for AbsPathBuf
Source§impl AsRef<Utf8Path> for AbsPathBuf
impl AsRef<Utf8Path> for AbsPathBuf
Source§impl Borrow<AbsPath> for AbsPathBuf
impl Borrow<AbsPath> for AbsPathBuf
Source§impl Clone for AbsPathBuf
impl Clone for AbsPathBuf
Source§fn clone(&self) -> AbsPathBuf
fn clone(&self) -> AbsPathBuf
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more