tuwunel_core/matrix/event/
relation.rs1use ruma::events::relation::RelationType;
2use serde::Deserialize;
3
4use super::Event;
5
6pub trait RelationTypeEqual<E: Event> {
7 fn relation_type_equal(&self, event: &E) -> bool;
8}
9
10#[derive(Clone, Debug, Deserialize)]
11struct ExtractRelatesToEventId {
12 #[serde(rename = "m.relates_to")]
13 relates_to: ExtractRelType,
14}
15
16#[derive(Clone, Debug, Deserialize)]
17struct ExtractRelType {
18 rel_type: RelationType,
19}
20
21impl<E: Event> RelationTypeEqual<E> for RelationType {
22 fn relation_type_equal(&self, event: &E) -> bool {
23 event
24 .get_content()
25 .map(|c: ExtractRelatesToEventId| c.relates_to.rel_type)
26 .is_ok_and(|r| r == *self)
27 }
28}