pub struct SFile { /* private fields */ }Expand description
An SFile can be constructed from a Path, io::DirEntry, or walkdir::DirEntry and guarantees the following:
- The entry is a file (exists).
- It has a file name.
- The full path is UTF-8 valid.
Implementations§
Source§impl SFile
impl SFile
Constructors that guarantee the SFile contract described in the struct
Sourcepub fn new(path: impl Into<PathBuf>) -> Result<Self>
pub fn new(path: impl Into<PathBuf>) -> Result<Self>
Constructor for SFile accepting anything that implements Into<&PathBuf>.
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 File and all impl AsRef<&Path>.
Returns Result
Note: Prefers the use of the SPath::try_from(…) when available, as it might avoid a PathBuf allocation.
Sourcepub fn from_walkdir_entry(wd_entry: DirEntry) -> Result<Self>
pub fn from_walkdir_entry(wd_entry: DirEntry) -> Result<Self>
Constructor from walkdir::DirEntry
Sourcepub fn from_path_ok(path: impl AsRef<Path>) -> Option<Self>
pub fn from_path_ok(path: impl AsRef<Path>) -> Option<Self>
Constructors for anything that implements AsRef<&Path>.
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 fails. 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 fails. 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 fails. Useful for filter_map.
Source§impl SFile
impl SFile
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 SFile constructor guarantees that the path.to_str() is valid.
Sourcepub fn file_name(&self) -> Option<&str>
pub fn file_name(&self) -> Option<&str>
Returns the Option<&str> representation of the path.file_name().
Note: if the OsStr cannot be made into UTF-8, will be None.
Sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
Returns the &str representation of the path.file_name().
Note: If no file name (e.g., ./) or OsStr is not UTF-8, will be an empty string
Sourcepub fn file_stem(&self) -> Option<&str>
pub fn file_stem(&self) -> Option<&str>
Returns the Option<&str> representation of the file_stem().
Note: if the OsStr cannot be made into UTF-8, will be None.
Sourcepub fn stem(&self) -> &str
pub fn stem(&self) -> &str
Returns the &str representation of the file_name().
Note: If no file name (e.g., ./) or OsStr is not UTF-8, will be an empty string
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 SFile construction.
Sourcepub fn modified(&self) -> Result<SystemTime>
pub fn modified(&self) -> Result<SystemTime>
Returns the path.metadata modified as 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 not to worry.
Source§impl SFile
impl SFile
Transformers
pub fn canonicalize(&self) -> Result<SFile>
Sourcepub fn parent(&self) -> Option<SPath>
pub fn parent(&self) -> Option<SPath>
Returns the parent directory as SPath, if available.
If the SFile has a parent directory, converts it to SPath and returns it.
Sourcepub fn join(&self, leaf_path: impl AsRef<Path>) -> Result<SPath>
pub fn join(&self, leaf_path: impl AsRef<Path>) -> Result<SPath>
Joins the current path with the specified leaf_path.
This method creates a new path by joining the existing path with a specified leaf_path and returns the result as an SPath.
Sourcepub fn new_sibling(&self, leaf_path: impl AsRef<Path>) -> Result<SPath>
pub fn new_sibling(&self, leaf_path: impl AsRef<Path>) -> Result<SPath>
Creates a new sibling path with the specified leaf_path.
Generates a new path in the same parent directory as the current file, appending the leaf_path.
pub fn clean(&self) -> SPath
pub fn diff(&self, base: impl AsRef<Path>) -> Result<SPath>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SFile
impl RefUnwindSafe for SFile
impl Send for SFile
impl Sync for SFile
impl Unpin for SFile
impl UnwindSafe for SFile
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)