pub struct TreeBuilder<T> { /* private fields */ }Expand description
Builder for constructing tree structures from flat data
Provides methods to build a hierarchical tree from flat lists of items with path-based insertion.
Implementations§
Source§impl<T> TreeBuilder<T>
impl<T> TreeBuilder<T>
Sourcepub fn new(root_name: impl Into<String>) -> Self
pub fn new(root_name: impl Into<String>) -> Self
Create a new tree builder with a root node name
§Examples
use tree_fmt::TreeBuilder;
let builder : TreeBuilder< i32 > = TreeBuilder::new( "root" );Sourcepub fn insert(self, path: &[&str], data: T) -> Self
pub fn insert(self, path: &[&str], data: T) -> Self
Insert an item at the specified path
§Arguments
path- Array of path components (e.g.,&["src", "main.rs"])data- Data to associate with the leaf node
§Examples
use tree_fmt::TreeBuilder;
let tree = TreeBuilder::new( "root" )
.insert( &[ "src", "main.rs" ], 100 )
.insert( &[ "src", "lib.rs" ], 200 )
.build();Source§impl<T: Clone> TreeBuilder<T>
impl<T: Clone> TreeBuilder<T>
Sourcepub fn from_items<F, G>(
items: &[T],
extract_path: F,
extract_data: G,
) -> TreeNode<T>
pub fn from_items<F, G>( items: &[T], extract_path: F, extract_data: G, ) -> TreeNode<T>
Build tree from items with path extractor and data extractor
§Arguments
items- Slice of items to build tree fromextract_path- Function to extract path components from an itemextract_data- Function to extract data from an item
§Examples
use tree_fmt::TreeBuilder;
#[ derive( Clone ) ]
struct FileItem { path : String, size : u64 }
let items = vec![
FileItem { path : "src/main.rs".to_string(), size : 100 },
FileItem { path : "src/lib.rs".to_string(), size : 200 },
];
let tree = TreeBuilder::from_items( &items, | item | {
item.path.split( '/' ).map( | s | s.to_string() ).collect()
}, | item | item.clone() );Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for TreeBuilder<T>where
T: Freeze,
impl<T> RefUnwindSafe for TreeBuilder<T>where
T: RefUnwindSafe,
impl<T> Send for TreeBuilder<T>where
T: Send,
impl<T> Sync for TreeBuilder<T>where
T: Sync,
impl<T> Unpin for TreeBuilder<T>where
T: Unpin,
impl<T> UnwindSafe for TreeBuilder<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
Mutably borrows from an owned value. Read more