aboutsummaryrefslogtreecommitdiffstats
path: root/src/command/client/search/engines/db.rs
diff options
context:
space:
mode:
authorConrad Ludgate <conradludgate@gmail.com>2023-03-26 15:47:38 +0100
committerGitHub <noreply@github.com>2023-03-26 15:47:38 +0100
commitbb7f00dbef3bf4c7c00c1969cb0089de51bd9ba9 (patch)
tree6ac9722a353f844c2896335d2617eb49a677b20f /src/command/client/search/engines/db.rs
parentUpdate README.md (diff)
downloadatuin-bb7f00dbef3bf4c7c00c1969cb0089de51bd9ba9.zip
chore: use fork of skim (#803)
* use fuzzy-matcher instead of skim switch to a search-engine abstraction * fmt * fix deprecated warnings
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<_>>())
+ }
+}