ratatui_toolkit/primitives/tree_view/tree_view_state/
mod.rs

1//! Tree view state for tracking selection, expansion, and filtering.
2
3pub mod constructors;
4pub mod methods;
5pub mod traits;
6
7use std::collections::HashSet;
8
9/// Tree view state for StatefulWidget pattern.
10///
11/// Tracks the current selection, expanded nodes, scroll offset,
12/// and filter state for the tree view.
13///
14/// # Example
15///
16/// ```rust
17/// use ratatui_toolkit::tree_view::TreeViewState;
18///
19/// let mut state = TreeViewState::new();
20/// state.select(vec![0, 1]);
21/// state.expand(vec![0]);
22/// ```
23#[derive(Debug, Clone, Default)]
24pub struct TreeViewState {
25    /// Currently selected node path (indices from root)
26    pub selected_path: Option<Vec<usize>>,
27    /// Set of expanded node paths
28    pub expanded: HashSet<Vec<usize>>,
29    /// Vertical scroll offset
30    pub offset: usize,
31    /// Current filter text
32    pub filter: Option<String>,
33    /// Whether filter mode is active
34    pub filter_mode: bool,
35}