pub struct StdFileSystem;Expand description
Standard filesystem implementation using std::fs
This is the default implementation for native builds.
Implementations§
Source§impl StdFileSystem
impl StdFileSystem
Sourcepub fn current_user_groups() -> (u32, Vec<u32>)
pub fn current_user_groups() -> (u32, Vec<u32>)
Get the current user’s effective UID and all group IDs (primary + supplementary).
Trait Implementations§
Source§impl Clone for StdFileSystem
impl Clone for StdFileSystem
Source§fn clone(&self) -> StdFileSystem
fn clone(&self) -> StdFileSystem
Returns a duplicate 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 Debug for StdFileSystem
impl Debug for StdFileSystem
Source§impl Default for StdFileSystem
impl Default for StdFileSystem
Source§fn default() -> StdFileSystem
fn default() -> StdFileSystem
Returns the “default value” for a type. Read more
Source§impl FileSystem for StdFileSystem
impl FileSystem for StdFileSystem
Source§fn read_range(&self, path: &Path, offset: u64, len: usize) -> Result<Vec<u8>>
fn read_range(&self, path: &Path, offset: u64, len: usize) -> Result<Vec<u8>>
Read a range of bytes from a file (for lazy loading large files)
Source§fn write_file(&self, path: &Path, data: &[u8]) -> Result<()>
fn write_file(&self, path: &Path, data: &[u8]) -> Result<()>
Write data to file atomically (temp file + rename)
Source§fn create_file(&self, path: &Path) -> Result<Box<dyn FileWriter>>
fn create_file(&self, path: &Path) -> Result<Box<dyn FileWriter>>
Create a file for writing, returns a writer handle
Source§fn open_file(&self, path: &Path) -> Result<Box<dyn FileReader>>
fn open_file(&self, path: &Path) -> Result<Box<dyn FileReader>>
Open a file for reading, returns a reader handle
Source§fn open_file_for_write(&self, path: &Path) -> Result<Box<dyn FileWriter>>
fn open_file_for_write(&self, path: &Path) -> Result<Box<dyn FileWriter>>
Open a file for writing in-place (truncating, preserves ownership on Unix)
Source§fn open_file_for_append(&self, path: &Path) -> Result<Box<dyn FileWriter>>
fn open_file_for_append(&self, path: &Path) -> Result<Box<dyn FileWriter>>
Open a file for appending (creates if doesn’t exist)
Source§fn set_file_length(&self, path: &Path, len: u64) -> Result<()>
fn set_file_length(&self, path: &Path, len: u64) -> Result<()>
Set file length (truncate or extend with zeros)
Source§fn rename(&self, from: &Path, to: &Path) -> Result<()>
fn rename(&self, from: &Path, to: &Path) -> Result<()>
Rename/move a file or directory atomically
Source§fn copy(&self, from: &Path, to: &Path) -> Result<u64>
fn copy(&self, from: &Path, to: &Path) -> Result<u64>
Copy a file (fallback when rename fails across filesystems)
Source§fn symlink_metadata(&self, path: &Path) -> Result<FileMetadata>
fn symlink_metadata(&self, path: &Path) -> Result<FileMetadata>
Get symlink metadata (doesn’t follow symlinks)
Source§fn set_permissions(
&self,
path: &Path,
permissions: &FilePermissions,
) -> Result<()>
fn set_permissions( &self, path: &Path, permissions: &FilePermissions, ) -> Result<()>
Set file permissions
Source§fn read_dir(&self, path: &Path) -> Result<Vec<DirEntry>>
fn read_dir(&self, path: &Path) -> Result<Vec<DirEntry>>
List entries in a directory (non-recursive)
Source§fn create_dir_all(&self, path: &Path) -> Result<()>
fn create_dir_all(&self, path: &Path) -> Result<()>
Create a directory and all parent directories
Source§fn canonicalize(&self, path: &Path) -> Result<PathBuf>
fn canonicalize(&self, path: &Path) -> Result<PathBuf>
Get canonical (absolute, normalized) path
Source§fn current_uid(&self) -> u32
fn current_uid(&self) -> u32
Get the current user’s UID (Unix only, returns 0 on other platforms)
Source§fn sudo_write(
&self,
path: &Path,
data: &[u8],
mode: u32,
uid: u32,
gid: u32,
) -> Result<()>
fn sudo_write( &self, path: &Path, data: &[u8], mode: u32, uid: u32, gid: u32, ) -> Result<()>
Write file using sudo (for root-owned files). Read more
Source§fn search_file(
&self,
path: &Path,
pattern: &str,
opts: &FileSearchOptions,
cursor: &mut FileSearchCursor,
) -> Result<Vec<SearchMatch>>
fn search_file( &self, path: &Path, pattern: &str, opts: &FileSearchOptions, cursor: &mut FileSearchCursor, ) -> Result<Vec<SearchMatch>>
Search a file on disk for a pattern, returning one batch of matches. Read more
Source§fn count_line_feeds_in_range(
&self,
path: &Path,
offset: u64,
len: usize,
) -> Result<usize>
fn count_line_feeds_in_range( &self, path: &Path, offset: u64, len: usize, ) -> Result<usize>
Count
\n bytes in a file range without returning the data. Read moreSource§fn write_patched(
&self,
src_path: &Path,
dst_path: &Path,
ops: &[WriteOp<'_>],
) -> Result<()>
fn write_patched( &self, src_path: &Path, dst_path: &Path, ops: &[WriteOp<'_>], ) -> Result<()>
Write a file using a patch recipe (optimized for remote filesystems). Read more
Source§fn metadata_if_exists(&self, path: &Path) -> Option<FileMetadata>
fn metadata_if_exists(&self, path: &Path) -> Option<FileMetadata>
Check if path exists, returns metadata if it does
Source§fn is_writable(&self, path: &Path) -> bool
fn is_writable(&self, path: &Path) -> bool
Check if the current user has write permission to the given path. Read more
Source§fn temp_path_for(&self, path: &Path) -> PathBuf
fn temp_path_for(&self, path: &Path) -> PathBuf
Get a temporary file path for atomic writes
Source§fn unique_temp_path(&self, dest_path: &Path) -> PathBuf
fn unique_temp_path(&self, dest_path: &Path) -> PathBuf
Get a unique temporary file path (using timestamp and PID)
impl Copy for StdFileSystem
Auto Trait Implementations§
impl Freeze for StdFileSystem
impl RefUnwindSafe for StdFileSystem
impl Send for StdFileSystem
impl Sync for StdFileSystem
impl Unpin for StdFileSystem
impl UnsafeUnpin for StdFileSystem
impl UnwindSafe for StdFileSystem
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FileSystemExt for Twhere
T: FileSystem,
impl<T> FileSystemExt for Twhere
T: FileSystem,
Source§fn read_file_async(
&self,
path: &Path,
) -> impl Future<Output = Result<Vec<u8>>> + Send
fn read_file_async( &self, path: &Path, ) -> impl Future<Output = Result<Vec<u8>>> + Send
Async version of read_file
Source§fn read_range_async(
&self,
path: &Path,
offset: u64,
len: usize,
) -> impl Future<Output = Result<Vec<u8>>> + Send
fn read_range_async( &self, path: &Path, offset: u64, len: usize, ) -> impl Future<Output = Result<Vec<u8>>> + Send
Async version of read_range
Source§fn count_line_feeds_in_range_async(
&self,
path: &Path,
offset: u64,
len: usize,
) -> impl Future<Output = Result<usize>> + Send
fn count_line_feeds_in_range_async( &self, path: &Path, offset: u64, len: usize, ) -> impl Future<Output = Result<usize>> + Send
Async version of count_line_feeds_in_range
Source§fn write_file_async(
&self,
path: &Path,
data: &[u8],
) -> impl Future<Output = Result<()>> + Send
fn write_file_async( &self, path: &Path, data: &[u8], ) -> impl Future<Output = Result<()>> + Send
Async version of write_file
Source§fn metadata_async(
&self,
path: &Path,
) -> impl Future<Output = Result<FileMetadata>> + Send
fn metadata_async( &self, path: &Path, ) -> impl Future<Output = Result<FileMetadata>> + Send
Async version of metadata
Source§fn exists_async(&self, path: &Path) -> impl Future<Output = bool> + Send
fn exists_async(&self, path: &Path) -> impl Future<Output = bool> + Send
Async version of exists
Source§fn is_dir_async(&self, path: &Path) -> impl Future<Output = Result<bool>> + Send
fn is_dir_async(&self, path: &Path) -> impl Future<Output = Result<bool>> + Send
Async version of is_dir
Source§fn is_file_async(
&self,
path: &Path,
) -> impl Future<Output = Result<bool>> + Send
fn is_file_async( &self, path: &Path, ) -> impl Future<Output = Result<bool>> + Send
Async version of is_file
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Set the foreground color generically Read more
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Set the background color generically. Read more
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Change the foreground color to black
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Change the background color to black
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Change the foreground color to red
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Change the background color to red
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Change the foreground color to green
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Change the background color to green
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Change the foreground color to yellow
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Change the background color to yellow
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Change the foreground color to blue
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Change the background color to blue
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to magenta
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to magenta
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to purple
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to purple
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Change the foreground color to cyan
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Change the background color to cyan
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Change the foreground color to white
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Change the background color to white
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Change the foreground color to the terminal default
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Change the background color to the terminal default
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Change the foreground color to bright black
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Change the background color to bright black
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Change the foreground color to bright red
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Change the background color to bright red
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Change the foreground color to bright green
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Change the background color to bright green
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Change the foreground color to bright yellow
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Change the background color to bright yellow
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Change the foreground color to bright blue
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Change the background color to bright blue
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright magenta
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright magenta
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright purple
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright purple
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Change the foreground color to bright cyan
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Change the background color to bright cyan
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Change the foreground color to bright white
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Change the background color to bright white
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Make the text bold
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Make the text dim
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Make the text italicized
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Make the text underlined
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Make the text blink
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Make the text blink (but fast!)
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Swap the foreground and background colors
Hide the text
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Cross out the text
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read moreSource§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
Source§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
Source§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
Source§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ResetDiscriminant<T> for Twhere
T: Copy,
impl<T> ResetDiscriminant<T> for Twhere
T: Copy,
Source§fn discriminant(&self) -> T
fn discriminant(&self) -> T
Value based on which equality for the reset will be determined.