pub struct LeafTree<T>(/* private fields */);
Implementations§
Source§impl<T> LeafTree<T>
impl<T> LeafTree<T>
pub fn new() -> Self
Sourcepub fn add_folder(
&mut self,
path: &(impl AsRef<str> + ?Sized),
) -> Result<(), CosmicPathErr>
pub fn add_folder( &mut self, path: &(impl AsRef<str> + ?Sized), ) -> Result<(), CosmicPathErr>
Adds a folder into the LeafTree.
We removed the value argument in this wrapper, since all values for Folder data
is ()
.
Sourcepub fn iter(&self) -> impl Iterator<Item = (String, UiTreeItemRef<'_, T, ()>)>
pub fn iter(&self) -> impl Iterator<Item = (String, UiTreeItemRef<'_, T, ()>)>
This is a wrapper around a standard iterator. Note that it skips the root value, which
is always ()
.
Sourcepub fn files_paths(&self) -> impl Iterator<Item = (String, &T)>
pub fn files_paths(&self) -> impl Iterator<Item = (String, &T)>
This is a wrapper around a standard iterator. Note that it skips the root value, which
is always ()
.
Methods from Deref<Target = UiTree<T, ()>>§
pub fn iter_paths( &self, ) -> impl Iterator<Item = (String, UiTreeItemRef<'_, T, F>)>
pub fn iter(&self) -> impl Iterator<Item = UiTreeItemRef<'_, T, F>>
Methods from Deref<Target = UiTreeFolder<T, F>>§
pub fn unique_path( &self, folder: &(impl AsRef<str> + ?Sized), base_file_name: &(impl AsRef<str> + ?Sized), ) -> String
pub fn file(&self, path: &(impl AsRef<str> + ?Sized)) -> Option<&T>
pub fn folder( &self, path: &(impl AsRef<str> + ?Sized), ) -> Option<&UiTreeFolder<T, F>>
Sourcepub fn root(&self) -> UiTreeItemRef<'_, T, F>
pub fn root(&self) -> UiTreeItemRef<'_, T, F>
Returns the root item. This is always a Folder.
pub fn item( &self, path: &(impl AsRef<str> + ?Sized), ) -> Option<UiTreeItemRef<'_, T, F>>
pub fn item_mut( &mut self, path: &(impl AsRef<str> + ?Sized), ) -> Option<UiTreeItemRefMut<'_, T, F>>
pub fn file_mut(&mut self, path: &(impl AsRef<str> + ?Sized)) -> Option<&mut T>
pub fn folder_mut( &mut self, path: &(impl AsRef<str> + ?Sized), ) -> Option<&mut UiTreeFolder<T, F>>
pub fn item_exists(&self, path: &(impl AsRef<str> + ?Sized)) -> bool
pub fn folder_exists(&self, path: &(impl AsRef<str> + ?Sized)) -> bool
pub fn file_exists(&self, path: &(impl AsRef<str> + ?Sized)) -> bool
pub fn add_item( &mut self, path: &(impl AsRef<str> + ?Sized), new_item: UiTreeItem<T, F>, ) -> Result<(), CosmicPathErr>
pub fn add_file( &mut self, path: &(impl AsRef<str> + ?Sized), value: T, ) -> Result<(), CosmicPathErr>
pub fn add_folder( &mut self, path: &(impl AsRef<str> + ?Sized), folder_value: F, ) -> Result<(), CosmicPathErr>
pub fn remove_item( &mut self, path: &(impl AsRef<str> + ?Sized), ) -> Result<UiTreeItem<T, F>, CosmicPathErr>
pub fn remove_file( &mut self, path: &(impl AsRef<str> + ?Sized), ) -> Result<T, CosmicPathErr>
pub fn remove_folder( &mut self, path: &(impl AsRef<str> + ?Sized), ) -> Result<UiTreeFolder<T, F>, CosmicPathErr>
pub fn move_item( &mut self, old_path: &(impl AsRef<str> + ?Sized), new_path: &(impl AsRef<str> + ?Sized), ) -> Result<(), CosmicPathErr>
pub fn files(&self) -> impl Iterator<Item = &T>
pub fn files_mut(&mut self) -> impl Iterator<Item = &mut T>
pub fn files_paths( &self, base_path: String, ) -> impl Iterator<Item = (String, &T)>
pub fn files_paths_mut( &mut self, base_path: String, ) -> impl Iterator<Item = (String, &mut T)>
Sourcepub fn set_children(
&mut self,
children: BTreeMap<String, Box<UiTreeItem<T, F>>>,
)
pub fn set_children( &mut self, children: BTreeMap<String, Box<UiTreeItem<T, F>>>, )
Directly sets the children
pub fn iter(&self) -> impl Iterator<Item = UiTreeItemRef<'_, T, F>>
pub fn iter_paths( &self, base: String, ) -> impl Iterator<Item = (String, UiTreeItemRef<'_, T, F>)>
Sourcepub fn for_each_mut<R>(
&mut self,
empty_folders_pass: bool,
filter: impl Fn(&str, &T) -> bool + Copy,
on_item: impl FnMut(&str, &mut UiTreeItemRefMut<'_, T, F>) -> Option<R>,
)
pub fn for_each_mut<R>( &mut self, empty_folders_pass: bool, filter: impl Fn(&str, &T) -> bool + Copy, on_item: impl FnMut(&str, &mut UiTreeItemRefMut<'_, T, F>) -> Option<R>, )
Performs an action
Sourcepub fn for_each<R>(
&self,
empty_folders_pass: bool,
filter: impl Fn(&str, &T) -> bool + Copy,
on_item: impl FnMut(&str, &UiTreeItemRef<'_, T, F>) -> Option<R>,
)
pub fn for_each<R>( &self, empty_folders_pass: bool, filter: impl Fn(&str, &T) -> bool + Copy, on_item: impl FnMut(&str, &UiTreeItemRef<'_, T, F>) -> Option<R>, )
Performs an action
pub fn add_folder_all( &mut self, path: &(impl AsRef<str> + ?Sized), ) -> Result<(), CosmicPathErr>
Trait Implementations§
Source§impl<'de, T> Deserialize<'de> for LeafTree<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for LeafTree<T>where
T: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<Tree> FromIterator<(String, Tree)> for LeafTree<Tree>
impl<Tree> FromIterator<(String, Tree)> for LeafTree<Tree>
Auto Trait Implementations§
impl<T> Freeze for LeafTree<T>
impl<T> RefUnwindSafe for LeafTree<T>where
T: RefUnwindSafe,
impl<T> Send for LeafTree<T>where
T: Send,
impl<T> Sync for LeafTree<T>where
T: Sync,
impl<T> Unpin for LeafTree<T>
impl<T> UnwindSafe for LeafTree<T>where
T: RefUnwindSafe,
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