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
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 clear_results(&mut self)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".