From d7e945f4c51fcbdddabbe90a800cd179e77b3a4a Mon Sep 17 00:00:00 2001 From: Charles Hall Date: Tue, 21 May 2024 21:58:43 -0700 Subject: [PATCH] enable `dead_code` lint --- Cargo.toml | 1 - src/database.rs | 11 ------- src/database/abstraction.rs | 6 ++-- src/database/abstraction/rocksdb.rs | 7 ----- src/database/abstraction/sqlite.rs | 5 ---- src/database/key_value/rooms/outlier.rs | 12 +------- src/database/key_value/rooms/state_cache.rs | 33 --------------------- src/database/key_value/sending.rs | 17 ----------- src/database/key_value/users.rs | 13 -------- src/service/globals.rs | 5 +++- src/service/rooms/edus/read_receipt/data.rs | 4 +++ src/service/rooms/outlier/data.rs | 4 +-- src/service/rooms/state_cache.rs | 9 ------ src/service/rooms/state_cache/data.rs | 8 ++--- src/service/sending.rs | 11 ------- src/service/sending/data.rs | 4 --- src/service/users/data.rs | 2 -- 17 files changed, 15 insertions(+), 137 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3d2ae5ad..f6de029b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,6 @@ unused_import_braces = "warn" unused_lifetimes = "warn" unused_macro_rules = "warn" -dead_code = "allow" unused_qualifications = "allow" [workspace.lints.clippy] diff --git a/src/database.rs b/src/database.rs index 9a31cf74..698b67eb 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1170,17 +1170,6 @@ impl KeyValueDatabase { Ok(()) } - #[tracing::instrument(skip(self))] - pub(crate) fn flush(&self) -> Result<()> { - let start = std::time::Instant::now(); - - let res = self.db.flush(); - - debug!("flush: took {:?}", start.elapsed()); - - res - } - #[tracing::instrument] pub(crate) fn start_cleanup_task() { use std::time::{Duration, Instant}; diff --git a/src/database/abstraction.rs b/src/database/abstraction.rs index 09f17720..db14c728 100644 --- a/src/database/abstraction.rs +++ b/src/database/abstraction.rs @@ -1,6 +1,5 @@ use std::{future::Future, pin::Pin, sync::Arc}; -use super::Config; use crate::Result; #[cfg(feature = "sqlite")] @@ -13,11 +12,11 @@ pub(crate) mod rocksdb; pub(crate) mod watchers; pub(crate) trait KeyValueDatabaseEngine: Send + Sync { - fn open(config: &Config) -> Result + #[cfg(any(feature = "sqlite", feature = "rocksdb"))] + fn open(config: &super::Config) -> Result where Self: Sized; fn open_tree(&self, name: &'static str) -> Result>; - fn flush(&self) -> Result<()>; fn cleanup(&self) -> Result<()> { Ok(()) } @@ -25,7 +24,6 @@ pub(crate) trait KeyValueDatabaseEngine: Send + Sync { Ok("Current database engine does not support memory usage reporting." .to_owned()) } - fn clear_caches(&self) {} } pub(crate) trait KvTree: Send + Sync { diff --git a/src/database/abstraction/rocksdb.rs b/src/database/abstraction/rocksdb.rs index 12e98ed6..ccfcedd9 100644 --- a/src/database/abstraction/rocksdb.rs +++ b/src/database/abstraction/rocksdb.rs @@ -139,11 +139,6 @@ impl KeyValueDatabaseEngine for Arc { })) } - fn flush(&self) -> Result<()> { - // TODO? - Ok(()) - } - #[allow(clippy::as_conversions, clippy::cast_precision_loss)] fn memory_usage(&self) -> Result { let stats = @@ -161,8 +156,6 @@ impl KeyValueDatabaseEngine for Arc { self.cache.get_pinned_usage() as f64 / 1024.0 / 1024.0, )) } - - fn clear_caches(&self) {} } impl RocksDbEngineTree<'_> { diff --git a/src/database/abstraction/sqlite.rs b/src/database/abstraction/sqlite.rs index 1ddfff54..f0f0a9d2 100644 --- a/src/database/abstraction/sqlite.rs +++ b/src/database/abstraction/sqlite.rs @@ -164,11 +164,6 @@ impl KeyValueDatabaseEngine for Arc { })) } - fn flush(&self) -> Result<()> { - // we enabled PRAGMA synchronous=normal, so this should not be necessary - Ok(()) - } - fn cleanup(&self) -> Result<()> { self.flush_wal() } diff --git a/src/database/key_value/rooms/outlier.rs b/src/database/key_value/rooms/outlier.rs index f41a02ee..562331ef 100644 --- a/src/database/key_value/rooms/outlier.rs +++ b/src/database/key_value/rooms/outlier.rs @@ -1,6 +1,6 @@ use ruma::{CanonicalJsonObject, EventId}; -use crate::{database::KeyValueDatabase, service, Error, PduEvent, Result}; +use crate::{database::KeyValueDatabase, service, Error, Result}; impl service::rooms::outlier::Data for KeyValueDatabase { fn get_outlier_pdu_json( @@ -16,16 +16,6 @@ impl service::rooms::outlier::Data for KeyValueDatabase { ) } - fn get_outlier_pdu(&self, event_id: &EventId) -> Result> { - self.eventid_outlierpdu.get(event_id.as_bytes())?.map_or( - Ok(None), - |pdu| { - serde_json::from_slice(&pdu) - .map_err(|_| Error::bad_database("Invalid PDU in db.")) - }, - ) - } - #[tracing::instrument(skip(self, pdu))] fn add_pdu_outlier( &self, diff --git a/src/database/key_value/rooms/state_cache.rs b/src/database/key_value/rooms/state_cache.rs index c27b8afb..ce8ce4df 100644 --- a/src/database/key_value/rooms/state_cache.rs +++ b/src/database/key_value/rooms/state_cache.rs @@ -377,39 +377,6 @@ impl service::rooms::state_cache::Data for KeyValueDatabase { .transpose() } - /// Returns an iterator over all User IDs who ever joined a room. - #[tracing::instrument(skip(self))] - fn room_useroncejoined<'a>( - &'a self, - room_id: &RoomId, - ) -> Box> + 'a> { - let mut prefix = room_id.as_bytes().to_vec(); - prefix.push(0xFF); - - Box::new(self.roomuseroncejoinedids.scan_prefix(prefix).map( - |(key, _)| { - UserId::parse( - utils::string_from_bytes( - key.rsplit(|&b| b == 0xFF) - .next() - .expect("rsplit always returns an element"), - ) - .map_err(|_| { - Error::bad_database( - "User ID in room_useroncejoined is invalid \ - unicode.", - ) - })?, - ) - .map_err(|_| { - Error::bad_database( - "User ID in room_useroncejoined is invalid.", - ) - }) - }, - )) - } - /// Returns an iterator over all invited members of a room. #[tracing::instrument(skip(self))] fn room_members_invited<'a>( diff --git a/src/database/key_value/sending.rs b/src/database/key_value/sending.rs index bac027e6..29ba6fd7 100644 --- a/src/database/key_value/sending.rs +++ b/src/database/key_value/sending.rs @@ -48,23 +48,6 @@ impl service::sending::Data for KeyValueDatabase { Ok(()) } - fn delete_all_requests_for( - &self, - outgoing_kind: &OutgoingKind, - ) -> Result<()> { - let prefix = outgoing_kind.get_prefix(); - for (key, _) in self.servercurrentevent_data.scan_prefix(prefix.clone()) - { - self.servercurrentevent_data.remove(&key).unwrap(); - } - - for (key, _) in self.servernameevent_data.scan_prefix(prefix) { - self.servernameevent_data.remove(&key).unwrap(); - } - - Ok(()) - } - fn queue_requests( &self, requests: &[(&OutgoingKind, SendingEventType)], diff --git a/src/database/key_value/users.rs b/src/database/key_value/users.rs index 0cef5414..6c4e4337 100644 --- a/src/database/key_value/users.rs +++ b/src/database/key_value/users.rs @@ -406,19 +406,6 @@ impl service::users::Data for KeyValueDatabase { Ok(()) } - fn last_one_time_keys_update(&self, user_id: &UserId) -> Result { - self.userid_lastonetimekeyupdate.get(user_id.as_bytes())?.map_or( - Ok(0), - |bytes| { - utils::u64_from_bytes(&bytes).map_err(|_| { - Error::bad_database( - "Count in roomid_lastroomactiveupdate is invalid.", - ) - }) - }, - ) - } - fn take_one_time_key( &self, user_id: &UserId, diff --git a/src/service/globals.rs b/src/service/globals.rs index 131610b4..e31a47a6 100644 --- a/src/service/globals.rs +++ b/src/service/globals.rs @@ -83,7 +83,10 @@ pub(crate) struct Service { /// the database. pub(crate) struct RotationHandler( broadcast::Sender<()>, - broadcast::Receiver<()>, + // TODO: Determine if it's safe to delete this field. I'm not deleting it + // right now because I'm unsure what implications that would have for how + // the sender expects to work. + #[allow(dead_code)] broadcast::Receiver<()>, ); impl RotationHandler { diff --git a/src/service/rooms/edus/read_receipt/data.rs b/src/service/rooms/edus/read_receipt/data.rs index 9e468400..b48ec9e2 100644 --- a/src/service/rooms/edus/read_receipt/data.rs +++ b/src/service/rooms/edus/read_receipt/data.rs @@ -39,6 +39,8 @@ pub(crate) trait Data: Send + Sync { ) -> Result<()>; /// Returns the private read marker. + // TODO: Implement MSC2285 + #[allow(dead_code)] fn private_read_get( &self, room_id: &RoomId, @@ -46,6 +48,8 @@ pub(crate) trait Data: Send + Sync { ) -> Result>; /// Returns the count of the last typing update in this room. + // TODO: Implement MSC2285 + #[allow(dead_code)] fn last_privateread_update( &self, user_id: &UserId, diff --git a/src/service/rooms/outlier/data.rs b/src/service/rooms/outlier/data.rs index 3357c5c9..5722648b 100644 --- a/src/service/rooms/outlier/data.rs +++ b/src/service/rooms/outlier/data.rs @@ -1,6 +1,6 @@ use ruma::{CanonicalJsonObject, EventId}; -use crate::{PduEvent, Result}; +use crate::Result; pub(crate) trait Data: Send + Sync { /// Returns the pdu from the outlier tree. @@ -8,7 +8,7 @@ pub(crate) trait Data: Send + Sync { &self, event_id: &EventId, ) -> Result>; - fn get_outlier_pdu(&self, event_id: &EventId) -> Result>; + /// Append the PDU as an outlier. fn add_pdu_outlier( &self, diff --git a/src/service/rooms/state_cache.rs b/src/service/rooms/state_cache.rs index deaf1cc8..af6c7848 100644 --- a/src/service/rooms/state_cache.rs +++ b/src/service/rooms/state_cache.rs @@ -313,15 +313,6 @@ impl Service { self.db.room_invited_count(room_id) } - /// Returns an iterator over all User IDs who ever joined a room. - #[tracing::instrument(skip(self))] - pub(crate) fn room_useroncejoined<'a>( - &'a self, - room_id: &RoomId, - ) -> impl Iterator> + 'a { - self.db.room_useroncejoined(room_id) - } - /// Returns an iterator over all invited members of a room. #[tracing::instrument(skip(self))] pub(crate) fn room_members_invited<'a>( diff --git a/src/service/rooms/state_cache/data.rs b/src/service/rooms/state_cache/data.rs index 94791c85..5369e42f 100644 --- a/src/service/rooms/state_cache/data.rs +++ b/src/service/rooms/state_cache/data.rs @@ -68,12 +68,6 @@ pub(crate) trait Data: Send + Sync { fn room_invited_count(&self, room_id: &RoomId) -> Result>; - /// Returns an iterator over all User IDs who ever joined a room. - fn room_useroncejoined<'a>( - &'a self, - room_id: &RoomId, - ) -> Box> + 'a>; - /// Returns an iterator over all invited members of a room. fn room_members_invited<'a>( &'a self, @@ -137,5 +131,7 @@ pub(crate) trait Data: Send + Sync { fn is_invited(&self, user_id: &UserId, room_id: &RoomId) -> Result; + // TODO: Use this when implementing sync filtering + #[allow(dead_code)] fn is_left(&self, user_id: &UserId, room_id: &RoomId) -> Result; } diff --git a/src/service/sending.rs b/src/service/sending.rs index bb392948..531ca3f2 100644 --- a/src/service/sending.rs +++ b/src/service/sending.rs @@ -588,17 +588,6 @@ impl Service { Ok(()) } - /// Cleanup event data - /// Used for instance after we remove an appservice registration - #[tracing::instrument(skip(self))] - pub(crate) fn cleanup_events(&self, appservice_id: String) -> Result<()> { - self.db.delete_all_requests_for(&OutgoingKind::Appservice( - appservice_id, - ))?; - - Ok(()) - } - #[tracing::instrument(skip(events))] async fn handle_events( kind: OutgoingKind, diff --git a/src/service/sending/data.rs b/src/service/sending/data.rs index b250c07c..040f9715 100644 --- a/src/service/sending/data.rs +++ b/src/service/sending/data.rs @@ -20,10 +20,6 @@ pub(crate) trait Data: Send + Sync { &self, outgoing_kind: &OutgoingKind, ) -> Result<()>; - fn delete_all_requests_for( - &self, - outgoing_kind: &OutgoingKind, - ) -> Result<()>; fn queue_requests( &self, requests: &[(&OutgoingKind, SendingEventType)], diff --git a/src/service/users/data.rs b/src/service/users/data.rs index ca6442e3..ea3959ed 100644 --- a/src/service/users/data.rs +++ b/src/service/users/data.rs @@ -116,8 +116,6 @@ pub(crate) trait Data: Send + Sync { one_time_key_value: &Raw, ) -> Result<()>; - fn last_one_time_keys_update(&self, user_id: &UserId) -> Result; - fn take_one_time_key( &self, user_id: &UserId,