use ruma::ServerName; use super::{Destination, SendingEvent}; use crate::Result; type OutgoingSendingIter<'a> = Box, Destination, SendingEvent)>> + 'a>; type SendingEventIter<'a> = Box, SendingEvent)>> + 'a>; pub trait Data: Send + Sync { fn active_requests(&self) -> OutgoingSendingIter<'_>; fn active_requests_for(&self, destination: &Destination) -> SendingEventIter<'_>; fn delete_active_request(&self, key: Vec) -> Result<()>; fn delete_all_active_requests_for(&self, destination: &Destination) -> Result<()>; /// TODO: use this? #[allow(dead_code)] fn delete_all_requests_for(&self, destination: &Destination) -> Result<()>; fn queue_requests(&self, requests: &[(&Destination, SendingEvent)]) -> Result>>; fn queued_requests<'a>( &'a self, destination: &Destination, ) -> Box)>> + 'a>; fn mark_as_active(&self, events: &[(SendingEvent, Vec)]) -> Result<()>; fn set_latest_educount(&self, server_name: &ServerName, educount: u64) -> Result<()>; fn get_latest_educount(&self, server_name: &ServerName) -> Result; }