summaryrefslogtreecommitdiff
path: root/src/service/rooms/pdu_metadata/data.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/rooms/pdu_metadata/data.rs')
-rw-r--r--src/service/rooms/pdu_metadata/data.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/service/rooms/pdu_metadata/data.rs b/src/service/rooms/pdu_metadata/data.rs
index b157938..6c4cb3c 100644
--- a/src/service/rooms/pdu_metadata/data.rs
+++ b/src/service/rooms/pdu_metadata/data.rs
@@ -1,9 +1,17 @@
use std::sync::Arc;
-use crate::Result;
-use ruma::{EventId, RoomId};
+use crate::{service::rooms::timeline::PduCount, PduEvent, Result};
+use ruma::{EventId, RoomId, UserId};
pub trait Data: Send + Sync {
+ fn add_relation(&self, from: u64, to: u64) -> Result<()>;
+ fn relations_until<'a>(
+ &'a self,
+ user_id: &'a UserId,
+ room_id: u64,
+ target: u64,
+ until: PduCount,
+ ) -> Result<Box<dyn Iterator<Item = Result<(PduCount, PduEvent)>> + 'a>>;
fn mark_as_referenced(&self, room_id: &RoomId, event_ids: &[Arc<EventId>]) -> Result<()>;
fn is_event_referenced(&self, room_id: &RoomId, event_id: &EventId) -> Result<bool>;
fn mark_event_soft_failed(&self, event_id: &EventId) -> Result<()>;