pub struct SPath { /* private fields */ }
Expand description
An SPath can be constructed from a Path, io::DirEntry, or walkdir::DirEntry and guarantees the following:
- The full path is UTF-8 valid.
- It has a file name.
Implementations§
source§impl SPath
impl SPath
Constructors that guarantees the SPath contract describe in the struct
sourcepub fn new(path: impl Into<PathBuf>) -> Result<Self>
pub fn new(path: impl Into<PathBuf>) -> Result<Self>
Constructor for SPath accepting anything that implements Into
Note: This is quite ergonomic and allows for avoiding a PathBuf allocation if a PathBuf is provided.
sourcepub fn from_path(path: impl AsRef<Path>) -> Result<Self>
pub fn from_path(path: impl AsRef<Path>) -> Result<Self>
Constructor from Path and all impl AsRef
Returns Result
Note: Prefer the use of the SPath::try_from(…) when available as it might avoid a PathBuf allocation.
sourcepub fn from_path_ok(path: impl AsRef<Path>) -> Option<Self>
pub fn from_path_ok(path: impl AsRef<Path>) -> Option<Self>
Constructor for anything that impl AsRef
Returns Option
Note: Favor using concrete type functions like SPath::from_path_buf_ok
when available.
sourcepub fn from_path_buf_ok(path_buf: PathBuf) -> Option<Self>
pub fn from_path_buf_ok(path_buf: PathBuf) -> Option<Self>
Constructor from PathBuf returning an Option, none if validation fail. Useful for filter_map.
sourcepub fn from_fs_entry_ok(fs_entry: DirEntry) -> Option<Self>
pub fn from_fs_entry_ok(fs_entry: DirEntry) -> Option<Self>
Constructor from fs::DirEntry returning an Option, none if validation fail. Useful for filter_map.
sourcepub fn from_walkdir_entry_ok(wd_entry: DirEntry) -> Option<Self>
pub fn from_walkdir_entry_ok(wd_entry: DirEntry) -> Option<Self>
Constructor from walkdir::DirEntry returning an Option, none if validation fail. Useful for filter_map.
source§impl SPath
impl SPath
Public file components as str methods.
sourcepub fn to_str(&self) -> &str
pub fn to_str(&self) -> &str
Returns the &str of the path.
NOTE: We know that this must be Some() since the SPath constructor guarantees that the path.to_str() is valid.
sourcepub fn file_name(&self) -> &str
pub fn file_name(&self) -> &str
Returns the &str representation of the file_name()
NOTE: According to the constructors’ contract, this method will never return “” as a file_name() is required for construction.
sourcepub fn file_stem(&self) -> &str
pub fn file_stem(&self) -> &str
Returns the &str representation of the file_name()
NOTE: According to the constructors’ contract, this method will never return “” as a file_name() is required for construction, and stem is always part of it.
pub fn stem(&self) -> &str
sourcepub fn extension(&self) -> Option<&str>
pub fn extension(&self) -> Option<&str>
Returns the Option<&str> representation of the extension().
NOTE: This should never be a non-UTF-8 string as the path was validated during SPath construction.
pub fn is_dir(&self) -> bool
pub fn is_file(&self) -> bool
pub fn modified(&self) -> Result<SystemTime>
sourcepub fn modified_us(&self) -> Result<i64>
pub fn modified_us(&self) -> Result<i64>
Returns the epoch duration in microseconds.
Note: The maximum UTC date would be approximately 292277-01-09 04:00:54 UTC
.
Thus, for all intents and purposes, it is far enough to not worry.