ratatui_toolkit/primitives/tree_view/tree_view_ref/constructors/new.rs
1//! TreeViewRef::new constructor.
2
3use ratatui::{
4 style::{Color, Style},
5 text::Line,
6};
7
8use crate::primitives::tree_view::tree_node::TreeNode;
9use crate::primitives::tree_view::tree_view_ref::TreeViewRef;
10
11impl<'a, 'b, T> TreeViewRef<'a, 'b, T> {
12 /// Creates a new tree view with a reference to nodes (avoids cloning).
13 ///
14 /// # Arguments
15 ///
16 /// * `nodes` - A reference to the root nodes of the tree.
17 ///
18 /// # Returns
19 ///
20 /// A new `TreeViewRef` with default settings.
21 ///
22 /// # Example
23 ///
24 /// ```rust
25 /// use ratatui_toolkit::tree_view::{TreeNode, TreeViewRef};
26 ///
27 /// let nodes = vec![TreeNode::new("Item")];
28 /// let tree = TreeViewRef::new(&nodes);
29 /// ```
30 pub fn new(nodes: &'b [TreeNode<T>]) -> Self {
31 Self {
32 nodes,
33 block: None,
34 render_fn: Box::new(|_data, _state| Line::from("Node")),
35 expand_icon: "\u{25b6}",
36 collapse_icon: "\u{25bc}",
37 highlight_style: None,
38 icon_style: Style::default().fg(Color::DarkGray),
39 }
40 }
41}