Struct ergo_fs::PathAbs
[−]
[src]
pub struct PathAbs(_);
An absolute (not necessarily canonicalized) path that may or may not exist.
Methods
impl PathAbs
[src]
pub fn new<P>(path: P) -> Result<PathAbs, Error> where
P: AsRef<Path>,
[src]
P: AsRef<Path>,
Instantiate a new PathAbs
. The path must exist or io::Error
will be returned.
Examples
use path_abs::PathAbs; let lib = PathAbs::new("src/lib.rs")?;
pub fn into_file(self) -> Result<PathFile, Error>
[src]
Resolve the PathAbs
as a PathFile
. Return an error if it is not a file.
pub fn into_dir(self) -> Result<PathDir, Error>
[src]
Resolve the PathAbs
as a PathDir
. Return an error if it is not a directory.
pub fn parent_dir(&self) -> Option<PathDir>
[src]
Get the parent directory of this path as a PathDir
.
This does not make aditional syscalls, as the parent by definition must be a directory and exist.
Examples
use path_abs::{PathDir, PathFile}; let lib = PathFile::new("src/lib.rs")?; let src = lib.parent_dir().unwrap(); assert_eq!(PathDir::new("src")?, src);
pub fn as_path(&self) -> &Path
[src]
Return a reference to a basic std::path::Path
pub fn mock<P>(fake_path: P) -> PathAbs where
P: AsRef<Path>,
[src]
P: AsRef<Path>,
For constructing mocked paths during tests. This is effectively the same as a PathBuf
.
This is NOT checked for validity so the file may or may not actually exist and will NOT be, in any way, an absolute or canonicalized path.
Examples
use path_abs::PathAbs; // this file exist let lib = PathAbs::new("src/lib.rs")?; let lib_mocked = PathAbs::mock("src/lib.rs"); // in this case, the mocked file exists assert!(lib_mocked.exists()); // However, it is NOT equivalent to `lib` assert_ne!(lib, lib_mocked); // this file doesn't exist at all let dne = PathAbs::mock("src/dne.rs"); assert!(!dne.exists());
Methods from Deref<Target = PathArc>
pub fn join<P>(&self, path: P) -> PathArc where
P: AsRef<Path>,
[src]
P: AsRef<Path>,
Creates an owned PathBuf with path adjoined to self.
This function is identical to std::path::PathBuf::join except
it returns PathArc
instead of PathBuf
pub fn with_file_name<P>(&self, file_name: P) -> PathArc where
P: AsRef<OsStr>,
[src]
P: AsRef<OsStr>,
Creates an owned PathArc
like self but with the given file name.
This function is identical to std::path::PathBuf::with_file_name except
it returns PathArc
instead of PathBuf
pub fn with_extension<P>(&self, extension: P) -> PathArc where
P: AsRef<OsStr>,
[src]
P: AsRef<OsStr>,
Creates an owned PathArc
like self but with the given extension.
This function is identical to std::path::PathBuf::with_extension except
it returns PathArc
instead of PathBuf
pub fn metadata(&self) -> Result<Metadata, Error>
[src]
Queries the file system to get information about a file, directory, etc.
This function will traverse symbolic links to query information about the destination file.
This function is identical to std::path::Path::metadata except it has error messages which include the action and the path
pub fn symlink_metadata(&self) -> Result<Metadata, Error>
[src]
Queries the metadata about a file without following symlinks.
This function is identical to std::path::Path::symlink_metadata except it has error messages which include the action and the path
pub fn canonicalize(&self) -> Result<PathAbs, Error>
[src]
Returns the canonical form of the path with all intermediate components normalized and symbolic links resolved.
This function is identical to std::path::Path::canonicalize except:
- It returns a
PathAbs
object - It has error messages which include the action and the path
pub fn read_link(&self) -> Result<PathArc, Error>
[src]
Reads a symbolic link, returning the file that the link points to.
This function is identical to std::path::Path::read_link except:
- It returns a
PathArc
object instead ofPathBuf
- It has error messages which include the action and the path
pub fn read_dir(&self) -> Result<ListDir, Error>
[src]
Returns an iterator over the entries within a directory.
This function is a shortcut to PathDir::list
. It is slightly different
than std::path::Path::read_dir.
pub fn as_path(&self) -> &Path
[src]
Return a reference to a basic std::path::Path
pub fn absolute(&self) -> Result<PathAbs, Error>
[src]
Convert the path to an absolute one, this is different from canonicalize
in that it
preserves symlinks and the destination may or may not exist.
This function will:
- Use
current_dir
to resolve relative paths. - 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, usecanonicalize()
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 thecurrent_dir
On linux, the only syscall this will make is to get the
current_dir
for relative paths.
Trait Implementations
impl Ord for PathAbs
[src]
fn cmp(&self, __arg_0: &PathAbs) -> Ordering
[src]
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
impl AsRef<PathArc> for PathAbs
[src]
impl AsRef<PathAbs> for PathFile
[src]
impl AsRef<PathAbs> for PathDir
[src]
impl AsRef<PathBuf> for PathAbs
[src]
impl AsRef<Path> for PathAbs
[src]
impl AsRef<PathAbs> for PathType
[src]
impl PartialOrd<PathAbs> for PathAbs
[src]
fn partial_cmp(&self, __arg_0: &PathAbs) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, __arg_0: &PathAbs) -> bool
[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, __arg_0: &PathAbs) -> bool
[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, __arg_0: &PathAbs) -> bool
[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, __arg_0: &PathAbs) -> bool
[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Deref for PathAbs
[src]
type Target = PathArc
The resulting type after dereferencing.
fn deref(&self) -> &PathArc
[src]
Dereferences the value.
impl Into<PathAbs> for PathType
[src]
fn into(self) -> PathAbs
[src]
Downgrades the PathType
into a PathAbs
Examples
use std::path::PathBuf; use path_abs::{PathType, PathAbs}; let ty = PathType::new("src/lib.rs")?; let abs: PathAbs = ty.into();
impl Into<PathArc> for PathAbs
[src]
impl Into<PathAbs> for PathFile
[src]
fn into(self) -> PathAbs
[src]
Downgrades the PathFile
into a PathAbs
Examples
use std::path::PathBuf; use path_abs::{PathFile, PathAbs}; let file = PathFile::new("src/lib.rs")?; let abs: PathAbs = file.clone().into();
impl Into<PathAbs> for PathDir
[src]
fn into(self) -> PathAbs
[src]
Downgrades the PathDir
into a PathAbs
Examples
use std::path::PathBuf; use path_abs::{PathDir, PathAbs}; let dir = PathDir::new("src")?; let abs: PathAbs = dir.into();
impl<'de> Deserialize<'de> for PathAbs
[src]
fn deserialize<D>(
deserializer: D
) -> Result<PathAbs, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]
deserializer: D
) -> Result<PathAbs, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for PathAbs
[src]
impl Hash for PathAbs
[src]
fn hash<__H>(&self, __arg_0: &mut __H) where
__H: Hasher,
[src]
__H: Hasher,
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl PartialEq<PathAbs> for PathAbs
[src]
fn eq(&self, __arg_0: &PathAbs) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &PathAbs) -> bool
[src]
This method tests for !=
.
impl Borrow<PathArc> for PathAbs
[src]
impl<'a> Borrow<PathAbs> for &'a PathFile
[src]
impl Borrow<PathAbs> for PathType
[src]
impl<'a> Borrow<PathAbs> for &'a PathDir
[src]
impl Borrow<Path> for PathAbs
[src]
impl<'a> Borrow<PathBuf> for &'a PathAbs
[src]
impl<'a> Borrow<PathAbs> for &'a PathType
[src]
impl Borrow<PathBuf> for PathAbs
[src]
impl Borrow<PathAbs> for PathDir
[src]
impl Borrow<PathAbs> for PathFile
[src]
impl<'a> Borrow<PathArc> for &'a PathAbs
[src]
impl<'a> Borrow<Path> for &'a PathAbs
[src]
impl Serialize for PathAbs
[src]
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Clone for PathAbs
[src]
fn clone(&self) -> PathAbs
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for PathAbs
[src]
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
[src]
Formats the value using the given formatter. Read more