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}