sql_cli/ui/state/
tui_state.rs

1#[derive(Clone)]
2pub enum SelectionMode {
3    Normal,
4    Column,
5    Block,
6    Visual,
7}
8
9#[derive(Clone, Default)]
10pub struct FilterState {
11    pub active: bool,
12    pub pattern: String,
13    pub cursor_pos: usize,
14}
15
16#[derive(Clone, Default)]
17pub struct FuzzyFilterState {
18    pub active: bool,
19    pub pattern: String,
20    pub cursor_pos: usize,
21}
22
23#[derive(Clone, Default)]
24pub struct ColumnSearchState {
25    pub active: bool,
26    pub column_index: usize,
27    pub pattern: String,
28    pub cursor_pos: usize,
29    pub results: Vec<usize>,
30    pub current_match: usize,
31}
32
33#[derive(Clone, Default)]
34pub struct SearchState {
35    pub pattern: String,
36    pub current_match: Option<(usize, usize)>, // (row, col)
37    pub matches: Vec<(usize, usize)>,
38    pub match_index: usize,
39}
40
41#[derive(Clone, Default)]
42pub struct CompletionState {
43    pub items: Vec<String>,
44    pub selected_index: usize,
45    pub active: bool,
46    pub prefix_len: usize,
47}
48
49#[derive(Default)]
50pub struct HistoryState {
51    pub active: bool,
52    pub input: String,
53    pub cursor_pos: usize,
54}
55
56#[derive(Clone, Default)]
57pub struct TuiState {
58    pub filter_state: FilterState,
59    pub fuzzy_filter_state: FuzzyFilterState,
60    pub column_search_state: ColumnSearchState,
61    pub search_state: SearchState,
62    pub completion_state: CompletionState,
63}