pub trait BufferAPI: Send + Sync {
Show 115 methods
// Required methods
fn get_id(&self) -> usize;
fn get_query(&self) -> String;
fn set_query(&mut self, query: String);
fn get_last_query(&self) -> String;
fn set_last_query(&mut self, query: String);
fn get_datatable(&self) -> Option<&DataTable>;
fn get_datatable_mut(&mut self) -> Option<&mut DataTable>;
fn has_datatable(&self) -> bool;
fn set_datatable(&mut self, datatable: Option<Arc<DataTable>>);
fn get_original_source(&self) -> Option<&DataTable>;
fn set_results_as_datatable(
&mut self,
response: Option<QueryResponse>,
) -> Result<(), String>;
fn get_dataview(&self) -> Option<&DataView>;
fn get_dataview_mut(&mut self) -> Option<&mut DataView>;
fn set_dataview(&mut self, dataview: Option<DataView>);
fn has_dataview(&self) -> bool;
fn get_mode(&self) -> AppMode;
fn set_mode(&mut self, mode: AppMode);
fn get_edit_mode(&self) -> EditMode;
fn set_edit_mode(&mut self, mode: EditMode);
fn get_status_message(&self) -> String;
fn set_status_message(&mut self, message: String);
fn get_selected_row(&self) -> Option<usize>;
fn set_selected_row(&mut self, row: Option<usize>);
fn get_current_column(&self) -> usize;
fn set_current_column(&mut self, col: usize);
fn get_scroll_offset(&self) -> (usize, usize);
fn set_scroll_offset(&mut self, offset: (usize, usize));
fn get_last_results_row(&self) -> Option<usize>;
fn set_last_results_row(&mut self, row: Option<usize>);
fn get_last_scroll_offset(&self) -> (usize, usize);
fn set_last_scroll_offset(&mut self, offset: (usize, usize));
fn get_filter_pattern(&self) -> String;
fn set_filter_pattern(&mut self, pattern: String);
fn is_filter_active(&self) -> bool;
fn set_filter_active(&mut self, active: bool);
fn get_fuzzy_filter_pattern(&self) -> String;
fn set_fuzzy_filter_pattern(&mut self, pattern: String);
fn is_fuzzy_filter_active(&self) -> bool;
fn set_fuzzy_filter_active(&mut self, active: bool);
fn get_fuzzy_filter_indices(&self) -> &Vec<usize>;
fn set_fuzzy_filter_indices(&mut self, indices: Vec<usize>);
fn clear_fuzzy_filter(&mut self);
fn get_search_pattern(&self) -> String;
fn set_search_pattern(&mut self, pattern: String);
fn get_search_matches(&self) -> Vec<(usize, usize)>;
fn set_search_matches(&mut self, matches: Vec<(usize, usize)>);
fn get_current_match(&self) -> Option<(usize, usize)>;
fn set_current_match(&mut self, match_pos: Option<(usize, usize)>);
fn get_search_match_index(&self) -> usize;
fn set_search_match_index(&mut self, index: usize);
fn clear_search_state(&mut self);
fn get_column_stats(&self) -> Option<&ColumnStatistics>;
fn set_column_stats(&mut self, stats: Option<ColumnStatistics>);
fn get_sort_column(&self) -> Option<usize>;
fn set_sort_column(&mut self, column: Option<usize>);
fn get_sort_order(&self) -> SortOrder;
fn set_sort_order(&mut self, order: SortOrder);
fn is_compact_mode(&self) -> bool;
fn set_compact_mode(&mut self, compact: bool);
fn is_show_row_numbers(&self) -> bool;
fn set_show_row_numbers(&mut self, show: bool);
fn is_viewport_lock(&self) -> bool;
fn set_viewport_lock(&mut self, locked: bool);
fn get_viewport_lock_row(&self) -> Option<usize>;
fn set_viewport_lock_row(&mut self, row: Option<usize>);
fn get_column_widths(&self) -> &Vec<u16>;
fn set_column_widths(&mut self, widths: Vec<u16>);
fn is_case_insensitive(&self) -> bool;
fn set_case_insensitive(&mut self, case_insensitive: bool);
fn get_name(&self) -> String;
fn set_name(&mut self, name: String);
fn get_file_path(&self) -> Option<&PathBuf>;
fn set_file_path(&mut self, path: Option<String>);
fn is_modified(&self) -> bool;
fn set_modified(&mut self, modified: bool);
fn get_last_query_source(&self) -> Option<String>;
fn set_last_query_source(&mut self, source: Option<String>);
fn get_input_value(&self) -> String;
fn set_input_value(&mut self, value: String);
fn get_input_cursor(&self) -> usize;
fn set_input_cursor(&mut self, pos: usize);
fn apply_filter(&mut self) -> Result<()>;
fn apply_sort(&mut self) -> Result<()>;
fn search(&mut self) -> Result<()>;
fn clear_filters(&mut self);
fn get_row_count(&self) -> usize;
fn get_column_count(&self) -> usize;
fn get_column_names(&self) -> Vec<String>;
fn get_undo_stack(&self) -> &Vec<(String, usize)>;
fn push_undo(&mut self, state: (String, usize));
fn pop_undo(&mut self) -> Option<(String, usize)>;
fn get_redo_stack(&self) -> &Vec<(String, usize)>;
fn push_redo(&mut self, state: (String, usize));
fn pop_redo(&mut self) -> Option<(String, usize)>;
fn clear_redo(&mut self);
fn get_kill_ring(&self) -> String;
fn set_kill_ring(&mut self, text: String);
fn is_kill_ring_empty(&self) -> bool;
fn perform_undo(&mut self) -> bool;
fn perform_redo(&mut self) -> bool;
fn save_state_for_undo(&mut self);
fn get_last_visible_rows(&self) -> usize;
fn set_last_visible_rows(&mut self, rows: usize);
fn debug_dump(&self) -> String;
fn get_input_text(&self) -> String;
fn set_input_text(&mut self, text: String);
fn handle_input_key(&mut self, event: KeyEvent) -> bool;
fn switch_input_mode(&mut self, multiline: bool);
fn get_input_cursor_position(&self) -> usize;
fn set_input_cursor_position(&mut self, position: usize);
fn is_input_multiline(&self) -> bool;
fn navigate_history_up(&mut self, history: &[String]) -> bool;
fn navigate_history_down(&mut self, history: &[String]) -> bool;
fn reset_history_navigation(&mut self);
fn clear_results(&mut self);
}
Expand description
BufferAPI
trait - defines the interface for interacting with buffer state
This abstraction allows the TUI to work with buffer state without knowing
the implementation details, enabling gradual migration and testing
Required Methods§
fn get_id(&self) -> usize
fn get_query(&self) -> String
fn set_query(&mut self, query: String)
fn get_last_query(&self) -> String
fn set_last_query(&mut self, query: String)
fn get_datatable(&self) -> Option<&DataTable>
fn get_datatable_mut(&mut self) -> Option<&mut DataTable>
fn has_datatable(&self) -> bool
fn set_datatable(&mut self, datatable: Option<Arc<DataTable>>)
fn get_original_source(&self) -> Option<&DataTable>
Sourcefn set_results_as_datatable(
&mut self,
response: Option<QueryResponse>,
) -> Result<(), String>
fn set_results_as_datatable( &mut self, response: Option<QueryResponse>, ) -> Result<(), String>
V50: Helper to convert QueryResponse
to DataTable
and store it