diff options
Diffstat (limited to 'crates/turtle/src/atuin_daemon')
| -rw-r--r-- | crates/turtle/src/atuin_daemon/components/search.rs | 23 | ||||
| -rw-r--r-- | crates/turtle/src/atuin_daemon/components/semantic.rs | 8 | ||||
| -rw-r--r-- | crates/turtle/src/atuin_daemon/components/sync.rs | 1 | ||||
| -rw-r--r-- | crates/turtle/src/atuin_daemon/control/mod.rs | 18 | ||||
| -rw-r--r-- | crates/turtle/src/atuin_daemon/generated.rs | 8 |
5 files changed, 34 insertions, 24 deletions
diff --git a/crates/turtle/src/atuin_daemon/components/search.rs b/crates/turtle/src/atuin_daemon/components/search.rs index bcb18865..bcd60cc4 100644 --- a/crates/turtle/src/atuin_daemon/components/search.rs +++ b/crates/turtle/src/atuin_daemon/components/search.rs @@ -60,6 +60,7 @@ impl SearchComponent { } /// Rebuild the entire search index from the database. + #[expect(clippy::significant_drop_tightening, reason = "false positive")] async fn rebuild_index(&self) -> Result<()> { let handle_guard = self.handle.read().await; let handle = handle_guard @@ -114,6 +115,7 @@ impl Component for SearchComponent { "search" } + #[expect(clippy::significant_drop_tightening, reason = "false positive")] async fn start(&mut self, handle: DaemonHandle) -> Result<()> { *self.handle.write().await = Some(handle.clone()); @@ -179,6 +181,7 @@ impl Component for SearchComponent { Ok(()) } + #[expect(clippy::significant_drop_tightening, reason = "false positive")] async fn handle_event(&mut self, event: &DaemonEvent) -> Result<()> { match event { DaemonEvent::RecordsAdded(records) => { @@ -314,7 +317,7 @@ impl SearchSvc for SearchGrpcService { ); // Convert proto FilterMode + context to IndexFilterMode - let index_filter = convert_filter_mode(filter_mode, &proto_context); + let index_filter = convert_filter_mode(filter_mode, proto_context.as_ref()); // Build QueryContext from proto context let query_context = proto_context @@ -368,21 +371,21 @@ impl SearchSvc for SearchGrpcService { /// Convert proto `FilterMode` and context to `IndexFilterMode`. fn convert_filter_mode( mode: FilterMode, - context: &Option<search::SearchContext>, + context: Option<&search::SearchContext>, ) -> IndexFilterMode { + #[expect( + clippy::match_same_arms, + reason = "wildcard pattern used in second one" + )] match (mode, context) { (FilterMode::Global, _) => IndexFilterMode::Global, (FilterMode::Directory, Some(ctx)) => { IndexFilterMode::Directory(with_trailing_slash(&ctx.cwd)) } - (FilterMode::Workspace, Some(ctx)) => { - if let Some(ref git_root) = ctx.git_root { - IndexFilterMode::Workspace(with_trailing_slash(git_root)) - } else { - // Fall back to directory if no git root - IndexFilterMode::Directory(with_trailing_slash(&ctx.cwd)) - } - } + (FilterMode::Workspace, Some(ctx)) => ctx.git_root.as_ref().map_or_else( + || IndexFilterMode::Directory(with_trailing_slash(&ctx.cwd)), + |git_root| IndexFilterMode::Workspace(with_trailing_slash(git_root)), + ), (FilterMode::Host, Some(ctx)) => IndexFilterMode::Host(ctx.hostname.clone()), (FilterMode::Session, Some(ctx)) => IndexFilterMode::Session(ctx.session_id.clone()), (FilterMode::SessionPreload, Some(ctx)) => { diff --git a/crates/turtle/src/atuin_daemon/components/semantic.rs b/crates/turtle/src/atuin_daemon/components/semantic.rs index 69ffc134..e1d376de 100644 --- a/crates/turtle/src/atuin_daemon/components/semantic.rs +++ b/crates/turtle/src/atuin_daemon/components/semantic.rs @@ -197,7 +197,7 @@ impl SemanticState { let record = SemanticCommandRecord { capture, history }; log_record(&record, "recorded semantic command capture"); - self.push_record(session_id, history_id, record); + self.push_record(&session_id, history_id, record); true } @@ -271,11 +271,11 @@ impl SemanticState { fn push_record( &mut self, - session_id: SessionId, + session_id: &SessionId, history_id: HistoryId, record: SemanticCommandRecord, ) { - self.touch_session(&session_id); + self.touch_session(session_id); let (capture_id, evicted) = { let session = self.sessions.entry(session_id.clone()).or_default(); @@ -290,7 +290,7 @@ impl SemanticState { for evicted in evicted { self.remove_history_index_if_matches( - &session_id, + session_id, &evicted.history_id, evicted.capture_id, ); diff --git a/crates/turtle/src/atuin_daemon/components/sync.rs b/crates/turtle/src/atuin_daemon/components/sync.rs index 933d5ae1..20d49839 100644 --- a/crates/turtle/src/atuin_daemon/components/sync.rs +++ b/crates/turtle/src/atuin_daemon/components/sync.rs @@ -112,6 +112,7 @@ impl Component for SyncComponent { /// /// This runs in a spawned task and handles periodic sync as well as /// force sync requests. +#[expect(clippy::significant_drop_tightening, reason = "false positive")] async fn sync_loop(handle: DaemonHandle, mut cmd_rx: mpsc::Receiver<SyncCommand>) { tracing::info!("sync loop starting"); diff --git a/crates/turtle/src/atuin_daemon/control/mod.rs b/crates/turtle/src/atuin_daemon/control/mod.rs index 7015db5b..79398d61 100644 --- a/crates/turtle/src/atuin_daemon/control/mod.rs +++ b/crates/turtle/src/atuin_daemon/control/mod.rs @@ -52,7 +52,7 @@ impl Control for ControlService { .event .ok_or_else(|| Status::invalid_argument("event is required"))?; - let daemon_event = proto_event_to_daemon_event(event)?; + let daemon_event = proto_event_to_daemon_event(event); info!(?daemon_event, "received control event"); self.handle.emit(daemon_event); @@ -62,15 +62,15 @@ impl Control for ControlService { } /// Convert a proto event to a daemon event. -fn proto_event_to_daemon_event(event: Event) -> Result<DaemonEvent, Status> { +fn proto_event_to_daemon_event(event: Event) -> DaemonEvent { match event { - Event::HistoryPruned(_) => Ok(DaemonEvent::HistoryPruned), - Event::HistoryRebuilt(_) => Ok(DaemonEvent::HistoryRebuilt), - Event::HistoryDeleted(e) => Ok(DaemonEvent::HistoryDeleted { + Event::HistoryPruned(_) => DaemonEvent::HistoryPruned, + Event::HistoryRebuilt(_) => DaemonEvent::HistoryRebuilt, + Event::HistoryDeleted(e) => DaemonEvent::HistoryDeleted { ids: e.ids.into_iter().map(HistoryId).collect(), - }), - Event::ForceSync(_) => Ok(DaemonEvent::ForceSync), - Event::SettingsReloaded(_) => Ok(DaemonEvent::SettingsReloaded), - Event::Shutdown(_) => Ok(DaemonEvent::ShutdownRequested), + }, + Event::ForceSync(_) => DaemonEvent::ForceSync, + Event::SettingsReloaded(_) => DaemonEvent::SettingsReloaded, + Event::Shutdown(_) => DaemonEvent::ShutdownRequested, } } diff --git a/crates/turtle/src/atuin_daemon/generated.rs b/crates/turtle/src/atuin_daemon/generated.rs index e43f7523..a3ea4d9d 100644 --- a/crates/turtle/src/atuin_daemon/generated.rs +++ b/crates/turtle/src/atuin_daemon/generated.rs @@ -1,6 +1,12 @@ -#![allow( +#![expect( unreachable_pub, unused_qualifications, + clippy::doc_markdown, + clippy::default_trait_access, + clippy::too_many_lines, + clippy::trivially_copy_pass_by_ref, + clippy::allow_attributes, + clippy::derive_partial_eq_without_eq, reason = "All of these lints are triggered by the generated code" )] |
