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 guarantees the SFile 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 SFile 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 File 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 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) -> &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_stem()
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 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 to not worry.
sourcepub fn file_size(&self) -> Result<i64>
pub fn file_size(&self) -> Result<i64>
Returns the file size in bytes as i64
.
Note: In the highly unlikely event that the size exceeds i64::MAX
,
i64::MAX
is returned. i64::MAX
represents 8,388,607 terabytes,
providing ample margin before it becomes a concern.