diff options
Diffstat (limited to 'src/command/client/search/engines.rs')
| -rw-r--r-- | src/command/client/search/engines.rs | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/src/command/client/search/engines.rs b/src/command/client/search/engines.rs deleted file mode 100644 index 878b1431..00000000 --- a/src/command/client/search/engines.rs +++ /dev/null @@ -1,46 +0,0 @@ -use async_trait::async_trait; -use atuin_client::{ - database::{Context, Database}, - history::History, - settings::{FilterMode, SearchMode}, -}; -use eyre::Result; - -use super::cursor::Cursor; - -pub mod db; -pub mod skim; - -pub fn engine(search_mode: SearchMode) -> Box<dyn SearchEngine> { - match search_mode { - SearchMode::Skim => Box::new(skim::Search::new()) as Box<_>, - mode => Box::new(db::Search(mode)) as Box<_>, - } -} - -pub struct SearchState { - pub input: Cursor, - pub filter_mode: FilterMode, - pub context: Context, -} - -#[async_trait] -pub trait SearchEngine: Send + Sync + 'static { - async fn full_query( - &mut self, - state: &SearchState, - db: &mut dyn Database, - ) -> Result<Vec<History>>; - - async fn query(&mut self, state: &SearchState, db: &mut dyn Database) -> Result<Vec<History>> { - if state.input.as_str().is_empty() { - Ok(db - .list(state.filter_mode, &state.context, Some(200), true) - .await? - .into_iter() - .collect::<Vec<_>>()) - } else { - self.full_query(state, db).await - } - } -} |
