re-scheme naming of stream iterator overloads

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2024-10-09 05:08:22 +00:00 committed by strawberry
parent 19880ce12b
commit 8258d16a94
18 changed files with 42 additions and 44 deletions

View file

@ -4,12 +4,10 @@ use conduit::implement;
use futures::stream::StreamExt; use futures::stream::StreamExt;
use serde::Serialize; use serde::Serialize;
use crate::de::Ignore;
/// Count the total number of entries in the map. /// Count the total number of entries in the map.
#[implement(super::Map)] #[implement(super::Map)]
#[inline] #[inline]
pub fn count(&self) -> impl Future<Output = usize> + Send + '_ { self.keys::<Ignore>().count() } pub fn count(&self) -> impl Future<Output = usize> + Send + '_ { self.raw_keys().count() }
/// Count the number of entries in the map starting from a lower-bound. /// Count the number of entries in the map starting from a lower-bound.
/// ///
@ -20,7 +18,7 @@ pub fn count_from<'a, P>(&'a self, from: &P) -> impl Future<Output = usize> + Se
where where
P: Serialize + ?Sized + Debug + 'a, P: Serialize + ?Sized + Debug + 'a,
{ {
self.keys_from::<Ignore, P>(from).count() self.keys_from_raw(from).count()
} }
/// Count the number of entries in the map matching a prefix. /// Count the number of entries in the map matching a prefix.
@ -32,5 +30,5 @@ pub fn count_prefix<'a, P>(&'a self, prefix: &P) -> impl Future<Output = usize>
where where
P: Serialize + ?Sized + Debug + 'a, P: Serialize + ?Sized + Debug + 'a,
{ {
self.keys_prefix::<Ignore, P>(prefix).count() self.keys_prefix_raw(prefix).count()
} }

View file

@ -13,13 +13,13 @@ where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
{ {
self.keys_raw_from(from) self.keys_from_raw(from)
.map(keyval::result_deserialize_key::<K>) .map(keyval::result_deserialize_key::<K>)
} }
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn keys_raw_from<P>(&self, from: &P) -> impl Stream<Item = Result<Key<'_>>> + Send pub fn keys_from_raw<P>(&self, from: &P) -> impl Stream<Item = Result<Key<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -29,7 +29,7 @@ where
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn keys_from_raw<'a, K, P>(&'a self, from: &P) -> impl Stream<Item = Result<Key<'_, K>>> + Send pub fn keys_raw_from<'a, K, P>(&'a self, from: &P) -> impl Stream<Item = Result<Key<'_, K>>> + Send
where where
P: AsRef<[u8]> + ?Sized + Debug + Sync, P: AsRef<[u8]> + ?Sized + Debug + Sync,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,

View file

@ -17,13 +17,13 @@ where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
{ {
self.keys_raw_prefix(prefix) self.keys_prefix_raw(prefix)
.map(keyval::result_deserialize_key::<K>) .map(keyval::result_deserialize_key::<K>)
} }
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn keys_raw_prefix<P>(&self, prefix: &P) -> impl Stream<Item = Result<Key<'_>>> + Send pub fn keys_prefix_raw<P>(&self, prefix: &P) -> impl Stream<Item = Result<Key<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -34,7 +34,7 @@ where
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn keys_prefix_raw<'a, K, P>(&'a self, prefix: &'a P) -> impl Stream<Item = Result<Key<'_, K>>> + Send + 'a pub fn keys_raw_prefix<'a, K, P>(&'a self, prefix: &'a P) -> impl Stream<Item = Result<Key<'_, K>>> + Send + 'a
where where
P: AsRef<[u8]> + ?Sized + Debug + Sync + 'a, P: AsRef<[u8]> + ?Sized + Debug + Sync + 'a,
K: Deserialize<'a> + Send + 'a, K: Deserialize<'a> + Send + 'a,

View file

@ -13,13 +13,13 @@ where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
{ {
self.rev_keys_raw_from(from) self.rev_keys_from_raw(from)
.map(keyval::result_deserialize_key::<K>) .map(keyval::result_deserialize_key::<K>)
} }
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_keys_raw_from<P>(&self, from: &P) -> impl Stream<Item = Result<Key<'_>>> + Send pub fn rev_keys_from_raw<P>(&self, from: &P) -> impl Stream<Item = Result<Key<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -29,7 +29,7 @@ where
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_keys_from_raw<'a, K, P>(&'a self, from: &P) -> impl Stream<Item = Result<Key<'_, K>>> + Send pub fn rev_keys_raw_from<'a, K, P>(&'a self, from: &P) -> impl Stream<Item = Result<Key<'_, K>>> + Send
where where
P: AsRef<[u8]> + ?Sized + Debug + Sync, P: AsRef<[u8]> + ?Sized + Debug + Sync,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,

View file

@ -17,13 +17,13 @@ where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
{ {
self.rev_keys_raw_prefix(prefix) self.rev_keys_prefix_raw(prefix)
.map(keyval::result_deserialize_key::<K>) .map(keyval::result_deserialize_key::<K>)
} }
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_keys_raw_prefix<P>(&self, prefix: &P) -> impl Stream<Item = Result<Key<'_>>> + Send pub fn rev_keys_prefix_raw<P>(&self, prefix: &P) -> impl Stream<Item = Result<Key<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -34,7 +34,7 @@ where
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_keys_prefix_raw<'a, K, P>(&'a self, prefix: &'a P) -> impl Stream<Item = Result<Key<'_, K>>> + Send + 'a pub fn rev_keys_raw_prefix<'a, K, P>(&'a self, prefix: &'a P) -> impl Stream<Item = Result<Key<'_, K>>> + Send + 'a
where where
P: AsRef<[u8]> + ?Sized + Debug + Sync + 'a, P: AsRef<[u8]> + ?Sized + Debug + Sync + 'a,
K: Deserialize<'a> + Send + 'a, K: Deserialize<'a> + Send + 'a,

View file

@ -18,7 +18,7 @@ where
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
V: Deserialize<'a> + Send, V: Deserialize<'a> + Send,
{ {
self.rev_stream_raw_from(from) self.rev_stream_from_raw(from)
.map(keyval::result_deserialize::<K, V>) .map(keyval::result_deserialize::<K, V>)
} }
@ -28,7 +28,7 @@ where
/// - Result is raw /// - Result is raw
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_stream_raw_from<P>(&self, from: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send pub fn rev_stream_from_raw<P>(&self, from: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -42,7 +42,7 @@ where
/// - Result is deserialized /// - Result is deserialized
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_stream_from_raw<'a, K, V, P>(&'a self, from: &P) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send pub fn rev_stream_raw_from<'a, K, V, P>(&'a self, from: &P) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send
where where
P: AsRef<[u8]> + ?Sized + Debug + Sync, P: AsRef<[u8]> + ?Sized + Debug + Sync,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,

View file

@ -22,7 +22,7 @@ where
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
V: Deserialize<'a> + Send, V: Deserialize<'a> + Send,
{ {
self.rev_stream_raw_prefix(prefix) self.rev_stream_prefix_raw(prefix)
.map(keyval::result_deserialize::<K, V>) .map(keyval::result_deserialize::<K, V>)
} }
@ -32,7 +32,7 @@ where
/// - Result is raw /// - Result is raw
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_stream_raw_prefix<P>(&self, prefix: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send pub fn rev_stream_prefix_raw<P>(&self, prefix: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -47,7 +47,7 @@ where
/// - Result is deserialized /// - Result is deserialized
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn rev_stream_prefix_raw<'a, K, V, P>( pub fn rev_stream_raw_prefix<'a, K, V, P>(
&'a self, prefix: &'a P, &'a self, prefix: &'a P,
) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send + 'a ) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send + 'a
where where

View file

@ -18,7 +18,7 @@ where
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
V: Deserialize<'a> + Send, V: Deserialize<'a> + Send,
{ {
self.stream_raw_from(from) self.stream_from_raw(from)
.map(keyval::result_deserialize::<K, V>) .map(keyval::result_deserialize::<K, V>)
} }
@ -28,7 +28,7 @@ where
/// - Result is raw /// - Result is raw
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn stream_raw_from<P>(&self, from: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send pub fn stream_from_raw<P>(&self, from: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -42,7 +42,7 @@ where
/// - Result is deserialized /// - Result is deserialized
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn stream_from_raw<'a, K, V, P>(&'a self, from: &P) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send pub fn stream_raw_from<'a, K, V, P>(&'a self, from: &P) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send
where where
P: AsRef<[u8]> + ?Sized + Debug + Sync, P: AsRef<[u8]> + ?Sized + Debug + Sync,
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,

View file

@ -22,7 +22,7 @@ where
K: Deserialize<'a> + Send, K: Deserialize<'a> + Send,
V: Deserialize<'a> + Send, V: Deserialize<'a> + Send,
{ {
self.stream_raw_prefix(prefix) self.stream_prefix_raw(prefix)
.map(keyval::result_deserialize::<K, V>) .map(keyval::result_deserialize::<K, V>)
} }
@ -32,7 +32,7 @@ where
/// - Result is raw /// - Result is raw
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn stream_raw_prefix<P>(&self, prefix: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send pub fn stream_prefix_raw<P>(&self, prefix: &P) -> impl Stream<Item = Result<KeyVal<'_>>> + Send
where where
P: Serialize + ?Sized + Debug, P: Serialize + ?Sized + Debug,
{ {
@ -47,7 +47,7 @@ where
/// - Result is deserialized /// - Result is deserialized
#[implement(super::Map)] #[implement(super::Map)]
#[tracing::instrument(skip(self), fields(%self), level = "trace")] #[tracing::instrument(skip(self), fields(%self), level = "trace")]
pub fn stream_prefix_raw<'a, K, V, P>( pub fn stream_raw_prefix<'a, K, V, P>(
&'a self, prefix: &'a P, &'a self, prefix: &'a P,
) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send + 'a ) -> impl Stream<Item = Result<KeyVal<'_, K, V>>> + Send + 'a
where where

View file

@ -79,7 +79,7 @@ pub async fn delete_backup(&self, user_id: &UserId, version: &str) {
let key = (user_id, version, Interfix); let key = (user_id, version, Interfix);
self.db self.db
.backupkeyid_backup .backupkeyid_backup
.keys_raw_prefix(&key) .keys_prefix_raw(&key)
.ignore_err() .ignore_err()
.ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key)) .ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key))
.await; .await;
@ -181,7 +181,7 @@ pub async fn count_keys(&self, user_id: &UserId, version: &str) -> usize {
let prefix = (user_id, version); let prefix = (user_id, version);
self.db self.db
.backupkeyid_backup .backupkeyid_backup
.keys_raw_prefix(&prefix) .keys_prefix_raw(&prefix)
.count() .count()
.await .await
} }
@ -256,7 +256,7 @@ pub async fn delete_all_keys(&self, user_id: &UserId, version: &str) {
let key = (user_id, version, Interfix); let key = (user_id, version, Interfix);
self.db self.db
.backupkeyid_backup .backupkeyid_backup
.keys_raw_prefix(&key) .keys_prefix_raw(&key)
.ignore_err() .ignore_err()
.ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key)) .ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key))
.await; .await;
@ -267,7 +267,7 @@ pub async fn delete_room_keys(&self, user_id: &UserId, version: &str, room_id: &
let key = (user_id, version, room_id, Interfix); let key = (user_id, version, room_id, Interfix);
self.db self.db
.backupkeyid_backup .backupkeyid_backup
.keys_raw_prefix(&key) .keys_prefix_raw(&key)
.ignore_err() .ignore_err()
.ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key)) .ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key))
.await; .await;
@ -278,7 +278,7 @@ pub async fn delete_room_key(&self, user_id: &UserId, version: &str, room_id: &R
let key = (user_id, version, room_id, session_id); let key = (user_id, version, room_id, session_id);
self.db self.db
.backupkeyid_backup .backupkeyid_backup
.keys_raw_prefix(&key) .keys_prefix_raw(&key)
.ignore_err() .ignore_err()
.ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key)) .ready_for_each(|outdated_key| self.db.backupkeyid_backup.remove(outdated_key))
.await; .await;

View file

@ -101,7 +101,7 @@ impl Service {
let prefix = (&room_id, Interfix); let prefix = (&room_id, Interfix);
self.db self.db
.aliasid_alias .aliasid_alias
.keys_raw_prefix(&prefix) .keys_prefix_raw(&prefix)
.ignore_err() .ignore_err()
.ready_for_each(|key| self.db.aliasid_alias.remove(key)) .ready_for_each(|key| self.db.aliasid_alias.remove(key))
.await; .await;

View file

@ -99,7 +99,7 @@ pub async fn lazy_load_reset(&self, user_id: &UserId, device_id: &DeviceId, room
let prefix = (user_id, device_id, room_id, Interfix); let prefix = (user_id, device_id, room_id, Interfix);
self.db self.db
.lazyloadedids .lazyloadedids
.keys_raw_prefix(&prefix) .keys_prefix_raw(&prefix)
.ignore_err() .ignore_err()
.ready_for_each(|key| self.db.lazyloadedids.remove(key)) .ready_for_each(|key| self.db.lazyloadedids.remove(key))
.await; .await;

View file

@ -50,7 +50,7 @@ pub async fn exists(&self, room_id: &RoomId) -> bool {
// Look for PDUs in that room. // Look for PDUs in that room.
self.db self.db
.pduid_pdu .pduid_pdu
.keys_raw_prefix(&prefix) .keys_prefix_raw(&prefix)
.ignore_err() .ignore_err()
.next() .next()
.await .await

View file

@ -84,7 +84,7 @@ impl Data {
let prefix2 = prefix.clone(); let prefix2 = prefix.clone();
self.readreceiptid_readreceipt self.readreceiptid_readreceipt
.stream_raw_from(&first_possible_edu) .stream_from_raw(&first_possible_edu)
.ignore_err() .ignore_err()
.ready_take_while(move |(k, _)| k.starts_with(&prefix2)) .ready_take_while(move |(k, _)| k.starts_with(&prefix2))
.map(move |(k, v)| { .map(move |(k, v)| {

View file

@ -52,7 +52,7 @@ impl Data {
) { ) {
let prefix = (room_id, Interfix); let prefix = (room_id, Interfix);
self.roomid_pduleaves self.roomid_pduleaves
.keys_raw_prefix(&prefix) .keys_prefix_raw(&prefix)
.ignore_err() .ignore_err()
.ready_for_each(|key| self.roomid_pduleaves.remove(key)) .ready_for_each(|key| self.roomid_pduleaves.remove(key))
.await; .await;

View file

@ -408,7 +408,7 @@ impl Service {
pub fn rooms_joined<'a>(&'a self, user_id: &'a UserId) -> impl Stream<Item = &RoomId> + Send + 'a { pub fn rooms_joined<'a>(&'a self, user_id: &'a UserId) -> impl Stream<Item = &RoomId> + Send + 'a {
self.db self.db
.userroomid_joined .userroomid_joined
.keys_prefix_raw(user_id) .keys_raw_prefix(user_id)
.ignore_err() .ignore_err()
.map(|(_, room_id): (Ignore, &RoomId)| room_id) .map(|(_, room_id): (Ignore, &RoomId)| room_id)
} }
@ -469,7 +469,7 @@ impl Service {
self.db self.db
.roomid_inviteviaservers .roomid_inviteviaservers
.stream_prefix_raw(room_id) .stream_raw_prefix(room_id)
.ignore_err() .ignore_err()
.map(|(_, servers): KeyVal<'_>| *servers.last().expect("at least one server")) .map(|(_, servers): KeyVal<'_>| *servers.last().expect("at least one server"))
} }

View file

@ -101,7 +101,7 @@ impl Data {
pub fn active_requests_for(&self, destination: &Destination) -> impl Stream<Item = SendingItem> + Send + '_ { pub fn active_requests_for(&self, destination: &Destination) -> impl Stream<Item = SendingItem> + Send + '_ {
let prefix = destination.get_prefix(); let prefix = destination.get_prefix();
self.servercurrentevent_data self.servercurrentevent_data
.stream_raw_prefix(&prefix) .stream_prefix_raw(&prefix)
.ignore_err() .ignore_err()
.map(|(key, val)| { .map(|(key, val)| {
let (_, event) = parse_servercurrentevent(key, val).expect("invalid servercurrentevent"); let (_, event) = parse_servercurrentevent(key, val).expect("invalid servercurrentevent");
@ -136,7 +136,7 @@ impl Data {
pub fn queued_requests(&self, destination: &Destination) -> impl Stream<Item = QueueItem> + Send + '_ { pub fn queued_requests(&self, destination: &Destination) -> impl Stream<Item = QueueItem> + Send + '_ {
let prefix = destination.get_prefix(); let prefix = destination.get_prefix();
self.servernameevent_data self.servernameevent_data
.stream_raw_prefix(&prefix) .stream_prefix_raw(&prefix)
.ignore_err() .ignore_err()
.map(|(key, val)| { .map(|(key, val)| {
let (_, event) = parse_servercurrentevent(key, val).expect("invalid servercurrentevent"); let (_, event) = parse_servercurrentevent(key, val).expect("invalid servercurrentevent");

View file

@ -311,7 +311,7 @@ impl Service {
let prefix = (user_id, device_id, Interfix); let prefix = (user_id, device_id, Interfix);
self.db self.db
.todeviceid_events .todeviceid_events
.keys_raw_prefix(&prefix) .keys_prefix_raw(&prefix)
.ignore_err() .ignore_err()
.ready_for_each(|key| self.db.todeviceid_events.remove(key)) .ready_for_each(|key| self.db.todeviceid_events.remove(key))
.await; .await;