Enum typed_path::UnixComponent 
source · pub enum UnixComponent<'a> {
    RootDir,
    CurDir,
    ParentDir,
    Normal(&'a [u8]),
}Expand description
Byte slice version of std::path::Component that represents a Unix-specific component
Variants§
Implementations§
Trait Implementations§
source§impl AsRef<[u8]> for UnixComponent<'_>
 
impl AsRef<[u8]> for UnixComponent<'_>
source§impl<'a> Clone for UnixComponent<'a>
 
impl<'a> Clone for UnixComponent<'a>
source§fn clone(&self) -> UnixComponent<'a>
 
fn clone(&self) -> UnixComponent<'a>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moresource§impl<'a> Component<'a> for UnixComponent<'a>
 
impl<'a> Component<'a> for UnixComponent<'a>
source§fn as_bytes(&self) -> &'a [u8] ⓘ
 
fn as_bytes(&self) -> &'a [u8] ⓘ
Extracts the underlying [[u8]] slice
Examples
use typed_path::{Component, UnixPath};
let path = UnixPath::new(b"/tmp/foo/../bar.txt");
let components: Vec<_> = path.components().map(|comp| comp.as_bytes()).collect();
assert_eq!(&components, &[
    b"/".as_slice(),
    b"tmp".as_slice(),
    b"foo".as_slice(),
    b"..".as_slice(),
    b"bar.txt".as_slice(),
]);source§fn is_root(&self) -> bool
 
fn is_root(&self) -> bool
Returns true if is the root dir component
Examples
use typed_path::{Component, UnixComponent};
use std::convert::TryFrom;
let root_dir = UnixComponent::try_from(b"/").unwrap();
assert!(root_dir.is_root());
let normal = UnixComponent::try_from(b"file.txt").unwrap();
assert!(!normal.is_root());source§fn is_normal(&self) -> bool
 
fn is_normal(&self) -> bool
Returns true if is a normal component
Examples
use typed_path::{Component, UnixComponent};
use std::convert::TryFrom;
let normal = UnixComponent::try_from(b"file.txt").unwrap();
assert!(normal.is_normal());
let root_dir = UnixComponent::try_from(b"/").unwrap();
assert!(!root_dir.is_normal());source§fn is_parent(&self) -> bool
 
fn is_parent(&self) -> bool
Returns true if is a parent directory component
Examples
use typed_path::{Component, UnixComponent};
use std::convert::TryFrom;
let parent = UnixComponent::try_from("..").unwrap();
assert!(parent.is_parent());
let root_dir = UnixComponent::try_from("/").unwrap();
assert!(!root_dir.is_parent());source§fn is_current(&self) -> bool
 
fn is_current(&self) -> bool
Returns true if is the current directory component
Examples
use typed_path::{Component, UnixComponent};
use std::convert::TryFrom;
let current = UnixComponent::try_from(".").unwrap();
assert!(current.is_current());
let root_dir = UnixComponent::try_from("/").unwrap();
assert!(!root_dir.is_current());source§fn root() -> Self
 
fn root() -> Self
Returns the root directory component.
Examples
use typed_path::{Component, UnixComponent};
assert_eq!(UnixComponent::root(), UnixComponent::RootDir);source§fn parent() -> Self
 
fn parent() -> Self
Returns the parent directory component.
Examples
use typed_path::{Component, UnixComponent};
assert_eq!(UnixComponent::parent(), UnixComponent::ParentDir);source§impl<'a> Debug for UnixComponent<'a>
 
impl<'a> Debug for UnixComponent<'a>
source§impl<'a> Hash for UnixComponent<'a>
 
impl<'a> Hash for UnixComponent<'a>
source§impl<'a> Ord for UnixComponent<'a>
 
impl<'a> Ord for UnixComponent<'a>
source§fn cmp(&self, other: &UnixComponent<'a>) -> Ordering
 
fn cmp(&self, other: &UnixComponent<'a>) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere
    Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl<'a> PartialEq for UnixComponent<'a>
 
impl<'a> PartialEq for UnixComponent<'a>
source§fn eq(&self, other: &UnixComponent<'a>) -> bool
 
fn eq(&self, other: &UnixComponent<'a>) -> bool
This method tests for 
self and other values to be equal, and is used
by ==.source§impl<'a> PartialOrd for UnixComponent<'a>
 
impl<'a> PartialOrd for UnixComponent<'a>
source§fn partial_cmp(&self, other: &UnixComponent<'a>) -> Option<Ordering>
 
fn partial_cmp(&self, other: &UnixComponent<'a>) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for 
self and other) and is used by the <=
operator. Read moresource§impl<'a> TryFrom<&'a [u8]> for UnixComponent<'a>
 
impl<'a> TryFrom<&'a [u8]> for UnixComponent<'a>
source§fn try_from(path: &'a [u8]) -> Result<Self, Self::Error>
 
fn try_from(path: &'a [u8]) -> Result<Self, Self::Error>
Parses the byte slice into a UnixComponent
Examples
use typed_path::UnixComponent;
use std::convert::TryFrom;
// Supports parsing standard unix path components
assert_eq!(UnixComponent::try_from(b"/"), Ok(UnixComponent::RootDir));
assert_eq!(UnixComponent::try_from(b"."), Ok(UnixComponent::CurDir));
assert_eq!(UnixComponent::try_from(b".."), Ok(UnixComponent::ParentDir));
assert_eq!(UnixComponent::try_from(b"file.txt"), Ok(UnixComponent::Normal(b"file.txt")));
assert_eq!(UnixComponent::try_from(b"dir/"), Ok(UnixComponent::Normal(b"dir")));
// Parsing more than one component will fail
assert!(UnixComponent::try_from(b"/file").is_err());source§impl<'a> TryFrom<&'a str> for UnixComponent<'a>
 
impl<'a> TryFrom<&'a str> for UnixComponent<'a>
source§impl<'a> TryFrom<Component<'a>> for UnixComponent<'a>
 
impl<'a> TryFrom<Component<'a>> for UnixComponent<'a>
source§fn try_from(component: StdComponent<'a>) -> Result<Self, Self::Error>
 
fn try_from(component: StdComponent<'a>) -> Result<Self, Self::Error>
Attempts to convert a std::path::Component into a UnixComponent, returning a result
containing the new component when successful or the original component when failed
Examples
use std::convert::TryFrom;
use std::ffi::OsStr;
use std::path::Component;
use typed_path::UnixComponent;
let component = UnixComponent::try_from(Component::RootDir).unwrap();
assert_eq!(component, UnixComponent::RootDir);
let component = UnixComponent::try_from(Component::CurDir).unwrap();
assert_eq!(component, UnixComponent::CurDir);
let component = UnixComponent::try_from(Component::ParentDir).unwrap();
assert_eq!(component, UnixComponent::ParentDir);
let component = UnixComponent::try_from(Component::Normal(OsStr::new("file.txt"))).unwrap();
assert_eq!(component, UnixComponent::Normal(b"file.txt"));source§impl<'a> TryFrom<UnixComponent<'a>> for Component<'a>
 
impl<'a> TryFrom<UnixComponent<'a>> for Component<'a>
source§fn try_from(component: UnixComponent<'a>) -> Result<Self, Self::Error>
 
fn try_from(component: UnixComponent<'a>) -> Result<Self, Self::Error>
Attempts to convert a UnixComponent into a std::path::Component, returning a result
containing the new path when successful or the original path when failed
Examples
use std::convert::TryFrom;
use std::ffi::OsStr;
use std::path::Component;
use typed_path::UnixComponent;
let component = Component::try_from(UnixComponent::RootDir).unwrap();
assert_eq!(component, Component::RootDir);
let component = Component::try_from(UnixComponent::CurDir).unwrap();
assert_eq!(component, Component::CurDir);
let component = Component::try_from(UnixComponent::ParentDir).unwrap();
assert_eq!(component, Component::ParentDir);
let component = Component::try_from(UnixComponent::Normal(b"file.txt")).unwrap();
assert_eq!(component, Component::Normal(OsStr::new("file.txt")));§type Error = UnixComponent<'a>
 
type Error = UnixComponent<'a>
The type returned in the event of a conversion error.
source§impl<'a> TryFrom<UnixComponent<'a>> for Utf8UnixComponent<'a>
 
impl<'a> TryFrom<UnixComponent<'a>> for Utf8UnixComponent<'a>
impl<'a> Copy for UnixComponent<'a>
impl<'a> Eq for UnixComponent<'a>
impl<'a> StructuralEq for UnixComponent<'a>
impl<'a> StructuralPartialEq for UnixComponent<'a>
Auto Trait Implementations§
impl<'a> RefUnwindSafe for UnixComponent<'a>
impl<'a> Send for UnixComponent<'a>
impl<'a> Sync for UnixComponent<'a>
impl<'a> Unpin for UnixComponent<'a>
impl<'a> UnwindSafe for UnixComponent<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more