pub struct FileSystemTrie<T>(/* private fields */);Expand description
A container for a directory tree-like cache where the “files” are a data type of your choice.
Implementations§
Source§impl<T> FileSystemTrie<T>
impl<T> FileSystemTrie<T>
pub fn new() -> Self
Sourcepub fn create_dir(&mut self, path: impl AsRef<Utf8Path>)
pub fn create_dir(&mut self, path: impl AsRef<Utf8Path>)
Adds a directory to the trie. If parent directories do not exist, they will be created.
Sourcepub fn create_file(&mut self, path: impl AsRef<Utf8Path>, value: T) -> Option<T>
pub fn create_file(&mut self, path: impl AsRef<Utf8Path>, value: T) -> Option<T>
Adds a file to the trie with the given value. If parent directories do not exist, they will be created. If there already was a file at the given path, the original value will be returned.
Sourcepub fn contains_dir(&self, path: impl AsRef<Utf8Path>) -> bool
pub fn contains_dir(&self, path: impl AsRef<Utf8Path>) -> bool
Returns whether or not a directory exists at the given path.
Sourcepub fn contains_file(&self, path: impl AsRef<Utf8Path>) -> bool
pub fn contains_file(&self, path: impl AsRef<Utf8Path>) -> bool
Returns whether or not a file exists at the given path.
Sourcepub fn contains(&self, path: impl AsRef<Utf8Path>) -> bool
pub fn contains(&self, path: impl AsRef<Utf8Path>) -> bool
Returns whether or not a file or directory exists at the given path.
Sourcepub fn get_dir_size(&self, path: impl AsRef<Utf8Path>) -> Option<usize>
pub fn get_dir_size(&self, path: impl AsRef<Utf8Path>) -> Option<usize>
Gets the number of direct children in the directory at the given path, if it exists.
Sourcepub fn get_file(&self, path: impl AsRef<Utf8Path>) -> Option<&T>
pub fn get_file(&self, path: impl AsRef<Utf8Path>) -> Option<&T>
Gets an immutable reference to the value in the file at the given path, if it exists.
Sourcepub fn get_file_mut(&mut self, path: impl AsRef<Utf8Path>) -> Option<&mut T>
pub fn get_file_mut(&mut self, path: impl AsRef<Utf8Path>) -> Option<&mut T>
Gets a mutable reference to the value in the file at the given path, if it exists.
Sourcepub fn get_or_create_file(&mut self, path: impl AsRef<Utf8Path>, value: T) -> &T
pub fn get_or_create_file(&mut self, path: impl AsRef<Utf8Path>, value: T) -> &T
Gets an immutable reference to the value in the file at the given path or creates the file with the given value if it doesn’t.
Sourcepub fn get_or_create_file_with(
&mut self,
path: impl AsRef<Utf8Path>,
f: impl FnOnce() -> T,
) -> &T
pub fn get_or_create_file_with( &mut self, path: impl AsRef<Utf8Path>, f: impl FnOnce() -> T, ) -> &T
Gets an immutable reference to the value in the file at the given path or creates the file with the given value if it doesn’t.
Sourcepub fn get_or_create_file_mut(
&mut self,
path: impl AsRef<Utf8Path>,
value: T,
) -> &mut T
pub fn get_or_create_file_mut( &mut self, path: impl AsRef<Utf8Path>, value: T, ) -> &mut T
Gets a mutable reference to the value in the file at the given path or creates the file with the given value if it doesn’t.
Sourcepub fn get_or_create_file_with_mut(
&mut self,
path: impl AsRef<Utf8Path>,
f: impl FnOnce() -> T,
) -> &mut T
pub fn get_or_create_file_with_mut( &mut self, path: impl AsRef<Utf8Path>, f: impl FnOnce() -> T, ) -> &mut T
Gets a mutable reference to the value in the file at the given path or creates the file with the given value if it doesn’t.
Sourcepub fn get_dir_prefix(&self, path: impl AsRef<Utf8Path>) -> &Utf8Path
pub fn get_dir_prefix(&self, path: impl AsRef<Utf8Path>) -> &Utf8Path
Gets the longest prefix of the given path that is the path of a directory in the trie.
Sourcepub fn remove_file(&mut self, path: impl AsRef<Utf8Path>) -> Option<T>
pub fn remove_file(&mut self, path: impl AsRef<Utf8Path>) -> Option<T>
Removes the file at the given path if it exists, and returns the original value.
Sourcepub fn remove_dir(&mut self, path: impl AsRef<Utf8Path>) -> bool
pub fn remove_dir(&mut self, path: impl AsRef<Utf8Path>) -> bool
Removes the directory at the given path and all of its contents if it exists, and returns whether or not it existed.
Sourcepub fn iter_dir(
&self,
path: impl AsRef<Utf8Path>,
) -> Option<FileSystemTrieDirIter<'_, T>>
pub fn iter_dir( &self, path: impl AsRef<Utf8Path>, ) -> Option<FileSystemTrieDirIter<'_, T>>
Given the path to a directory, returns an iterator over its children if it exists.
The iterator’s items are of the form (key, value) where key is the name of the child as
&str and value is the data of the child if it’s a file, as Option<&T>.
Sourcepub fn iter_prefix(
&self,
path: impl AsRef<Utf8Path>,
) -> Option<FileSystemTrieIter<'_, T>>
pub fn iter_prefix( &self, path: impl AsRef<Utf8Path>, ) -> Option<FileSystemTrieIter<'_, T>>
Given the path to a directory, returns an iterator over immutable references to its descendant files if it exists.
Trait Implementations§
Source§impl<T: Clone> Clone for FileSystemTrie<T>
impl<T: Clone> Clone for FileSystemTrie<T>
Source§fn clone(&self) -> FileSystemTrie<T>
fn clone(&self) -> FileSystemTrie<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T: Debug> Debug for FileSystemTrie<T>
impl<T: Debug> Debug for FileSystemTrie<T>
Auto Trait Implementations§
impl<T> Freeze for FileSystemTrie<T>where
T: Freeze,
impl<T> RefUnwindSafe for FileSystemTrie<T>where
T: RefUnwindSafe,
impl<T> Send for FileSystemTrie<T>where
T: Send,
impl<T> Sync for FileSystemTrie<T>where
T: Sync,
impl<T> Unpin for FileSystemTrie<T>where
T: Unpin,
impl<T> UnwindSafe for FileSystemTrie<T>where
T: UnwindSafe,
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§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>
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>
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,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
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,
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,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more