aboutsummaryrefslogtreecommitdiffstats
path: root/src/command/client/search/engines/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/client/search/engines/db.rs')
-rw-r--r--src/command/client/search/engines/db.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/command/client/search/engines/db.rs b/src/command/client/search/engines/db.rs
new file mode 100644
index 00000000..5a35da10
--- /dev/null
+++ b/src/command/client/search/engines/db.rs
@@ -0,0 +1,30 @@
+use async_trait::async_trait;
+use atuin_client::{database::Database, history::History, settings::SearchMode};
+use eyre::Result;
+
+use super::{SearchEngine, SearchState};
+
+pub struct Search(pub SearchMode);
+
+#[async_trait]
+impl SearchEngine for Search {
+ async fn full_query(
+ &mut self,
+ state: &SearchState,
+ db: &mut dyn Database,
+ ) -> Result<Vec<History>> {
+ Ok(db
+ .search(
+ self.0,
+ state.filter_mode,
+ &state.context,
+ state.input.as_str(),
+ Some(200),
+ None,
+ None,
+ )
+ .await?
+ .into_iter()
+ .collect::<Vec<_>>())
+ }
+}