pub mod constructors;
pub mod methods;
pub mod traits;
use ratatui::{style::Style, text::Line, widgets::Block};
use crate::primitives::tree_view::node_state::NodeState;
pub type NodeRenderFn<'a, T> = Box<dyn Fn(&T, &NodeState) -> Line<'a> + 'a>;
pub struct TreeView<'a, T> {
pub(crate) nodes: Vec<crate::primitives::tree_view::tree_node::TreeNode<T>>,
pub(crate) block: Option<Block<'a>>,
pub(crate) render_fn: NodeRenderFn<'a, T>,
pub(crate) expand_icon: &'a str,
pub(crate) collapse_icon: &'a str,
pub(crate) highlight_style: Option<Style>,
pub(crate) show_filter_ui: bool,
}