[][src]Struct path_abs::PathAbs

pub struct PathAbs(_);

An absolute (not necessarily canonicalized) path that may or may not exist.

Methods

impl PathAbs[src]

pub fn new<P: AsRef<Path>>(path: P) -> Result<PathAbs>[src]

Construct an absolute path from an arbitrary (absolute or relative) one.

This is different from canonicalize in that it preserves symlinks and the destination may or may not exist.

This function will:

  • Resolve relative paths against the current working directory.
  • Strip any . components (/a/./c -> /a/c)
  • Resolve .. semantically (not using the file system). So, a/b/c/../d => a/b/d will always be true regardless of symlinks. If you want symlinks correctly resolved, use canonicalize() instead.

On windows, this will sometimes call canonicalize() on the first component to guarantee it is the correct canonicalized prefix. For paths starting with root it also has to get the current_dir

On linux, the only syscall this will make is to get the current_dir for relative paths.

Examples

use path_abs::{PathAbs, PathInfo};

let lib = PathAbs::new("src/lib.rs")?;

assert_eq!(lib.is_absolute(), true);

pub fn new_unchecked<P: Into<Arc<PathBuf>>>(path: P) -> PathAbs[src]

Create a PathAbs unchecked.

This is mostly used for constructing during tests, or if the path was previously validated. This is effectively the same as a Arc<PathBuf>.

Note: This is memory safe, so is not marked unsafe. However, it could cause panics in some methods if the path was not properly validated.

pub fn as_path(&self) -> &Path[src]

Return a reference to a basic std::path::Path

Trait Implementations

impl PathMut for PathAbs[src]

impl PathOps for PathAbs[src]

type Output = PathAbs

impl From<PathAbs> for Arc<PathBuf>[src]

impl From<PathAbs> for PathBuf[src]

impl From<PathDir> for PathAbs[src]

impl From<PathFile> for PathAbs[src]

impl From<PathType> for PathAbs[src]

impl PartialEq<PathAbs> for PathAbs[src]

impl Clone for PathAbs[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl AsRef<OsStr> for PathAbs[src]

impl AsRef<Path> for PathAbs[src]

impl AsRef<PathBuf> for PathAbs[src]

impl AsRef<PathAbs> for PathDir[src]

impl AsRef<PathAbs> for PathFile[src]

impl AsRef<PathAbs> for PathType[src]

impl PartialOrd<PathAbs> for PathAbs[src]

impl Eq for PathAbs[src]

impl Ord for PathAbs[src]

fn max(self, other: Self) -> Self1.21.0[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self1.21.0[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp)

Restrict a value to a certain interval. Read more

impl Debug for PathAbs[src]

impl Hash for PathAbs[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Borrow<Path> for PathAbs[src]

impl Borrow<PathBuf> for PathAbs[src]

impl<'a> Borrow<Path> for &'a PathAbs[src]

impl<'a> Borrow<PathBuf> for &'a PathAbs[src]

impl Borrow<PathAbs> for PathDir[src]

impl<'a> Borrow<PathAbs> for &'a PathDir[src]

impl Borrow<PathAbs> for PathFile[src]

impl<'a> Borrow<PathAbs> for &'a PathFile[src]

impl Borrow<PathAbs> for PathType[src]

impl<'a> Borrow<PathAbs> for &'a PathType[src]

impl Serialize for PathAbs[src]

impl<'de> Deserialize<'de> for PathAbs[src]

Auto Trait Implementations

impl Unpin for PathAbs

impl Sync for PathAbs

impl Send for PathAbs

impl RefUnwindSafe for PathAbs

impl UnwindSafe for PathAbs

Blanket Implementations

impl<T> ToStfu8 for T where
    T: Borrow<PathBuf>, 
[src]

impl<T> PathInfo for T where
    T: Clone + Borrow<PathBuf> + Into<Arc<PathBuf>>, 
[src]

fn as_os_str(&self) -> &OsStr[src]

fn to_str(&self) -> Option<&str>[src]

fn to_string_lossy(&self) -> Cow<str>[src]

fn is_absolute(&self) -> bool[src]

fn is_relative(&self) -> bool[src]

fn has_root(&self) -> bool[src]

fn ancestors(&self) -> Ancestors[src]

fn file_name(&self) -> Option<&OsStr>[src]

fn strip_prefix<P>(&self, base: P) -> Result<&Path, StripPrefixError> where
    P: AsRef<Path>, 
[src]

fn starts_with<P: AsRef<Path>>(&self, base: P) -> bool[src]

fn ends_with<P: AsRef<Path>>(&self, base: P) -> bool[src]

fn file_stem(&self) -> Option<&OsStr>[src]

fn extension(&self) -> Option<&OsStr>[src]

fn components(&self) -> Components[src]

fn iter(&self) -> Iter[src]

fn display(&self) -> Display[src]

fn metadata(&self) -> Result<Metadata>[src]

Queries the file system to get information about a file, directory, etc. Read more

Queries the metadata about a file without following symlinks. Read more

fn exists(&self) -> bool[src]

fn is_file(&self) -> bool[src]

fn is_dir(&self) -> bool[src]

Reads a symbolic link, returning the path that the link points to. Read more

fn canonicalize(&self) -> Result<PathAbs>[src]

Returns the canonical, absolute form of the path with all intermediate components normalized and symbolic links resolved. Read more

fn parent(&self) -> Result<&Path>[src]

Returns the path without its final component, if there is one. Read more

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]