mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-18 16:21:24 +01:00
This change is fully automated, except the `rustfmt.toml` changes and a few clippy directives to allow specific functions with too many lines because they are longer now.
45 lines
1.3 KiB
Rust
45 lines
1.3 KiB
Rust
use ruma::ServerName;
|
|
|
|
use super::{OutgoingKind, SendingEventType};
|
|
use crate::Result;
|
|
|
|
pub(crate) trait Data: Send + Sync {
|
|
#[allow(clippy::type_complexity)]
|
|
fn active_requests<'a>(
|
|
&'a self,
|
|
) -> Box<
|
|
dyn Iterator<Item = Result<(Vec<u8>, OutgoingKind, SendingEventType)>>
|
|
+ 'a,
|
|
>;
|
|
fn active_requests_for<'a>(
|
|
&'a self,
|
|
outgoing_kind: &OutgoingKind,
|
|
) -> Box<dyn Iterator<Item = Result<(Vec<u8>, SendingEventType)>> + 'a>;
|
|
fn delete_active_request(&self, key: Vec<u8>) -> Result<()>;
|
|
fn delete_all_active_requests_for(
|
|
&self,
|
|
outgoing_kind: &OutgoingKind,
|
|
) -> Result<()>;
|
|
fn delete_all_requests_for(
|
|
&self,
|
|
outgoing_kind: &OutgoingKind,
|
|
) -> Result<()>;
|
|
fn queue_requests(
|
|
&self,
|
|
requests: &[(&OutgoingKind, SendingEventType)],
|
|
) -> Result<Vec<Vec<u8>>>;
|
|
fn queued_requests<'a>(
|
|
&'a self,
|
|
outgoing_kind: &OutgoingKind,
|
|
) -> Box<dyn Iterator<Item = Result<(SendingEventType, Vec<u8>)>> + 'a>;
|
|
fn mark_as_active(
|
|
&self,
|
|
events: &[(SendingEventType, Vec<u8>)],
|
|
) -> Result<()>;
|
|
fn set_latest_educount(
|
|
&self,
|
|
server_name: &ServerName,
|
|
educount: u64,
|
|
) -> Result<()>;
|
|
fn get_latest_educount(&self, server_name: &ServerName) -> Result<u64>;
|
|
}
|