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