sql_cli/ui/state/
tui_state.rs1#[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)>, 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}