events: Remove questionable trait implementations
They weren't really useful for user code.
This commit is contained in:
parent
f4a8ef6306
commit
90fe9edc32
@ -5,7 +5,9 @@ use serde::{de, Deserialize, Serialize};
|
|||||||
use serde_json::value::RawValue as RawJsonValue;
|
use serde_json::value::RawValue as RawJsonValue;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
from_raw_json_value, room::redaction::SyncRoomRedactionEvent, Redact, UnsignedDeHelper,
|
from_raw_json_value,
|
||||||
|
room::{encrypted, message, redaction::SyncRoomRedactionEvent},
|
||||||
|
Redact, UnsignedDeHelper,
|
||||||
};
|
};
|
||||||
|
|
||||||
event_enum! {
|
event_enum! {
|
||||||
@ -328,13 +330,20 @@ impl AnyMessageEventContent {
|
|||||||
///
|
///
|
||||||
/// This is a helper function intended for encryption. There should not be a reason to access
|
/// This is a helper function intended for encryption. There should not be a reason to access
|
||||||
/// `m.relates_to` without first destructuring an `AnyMessageEventContent` otherwise.
|
/// `m.relates_to` without first destructuring an `AnyMessageEventContent` otherwise.
|
||||||
pub fn relation(&self) -> Option<crate::room::encrypted::Relation> {
|
pub fn relation(&self) -> Option<encrypted::Relation> {
|
||||||
#[cfg(feature = "unstable-pre-spec")]
|
#[cfg(feature = "unstable-pre-spec")]
|
||||||
use crate::key::verification::{
|
use crate::{
|
||||||
accept::KeyVerificationAcceptEventContent, cancel::KeyVerificationCancelEventContent,
|
key::{
|
||||||
done::KeyVerificationDoneEventContent, key::KeyVerificationKeyEventContent,
|
self,
|
||||||
mac::KeyVerificationMacEventContent, ready::KeyVerificationReadyEventContent,
|
verification::{
|
||||||
start::KeyVerificationStartEventContent,
|
accept::KeyVerificationAcceptEventContent,
|
||||||
|
cancel::KeyVerificationCancelEventContent,
|
||||||
|
done::KeyVerificationDoneEventContent, key::KeyVerificationKeyEventContent,
|
||||||
|
mac::KeyVerificationMacEventContent, ready::KeyVerificationReadyEventContent,
|
||||||
|
start::KeyVerificationStartEventContent,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
reaction,
|
||||||
};
|
};
|
||||||
|
|
||||||
match self {
|
match self {
|
||||||
@ -347,12 +356,32 @@ impl AnyMessageEventContent {
|
|||||||
| Self::KeyVerificationKey(KeyVerificationKeyEventContent { relates_to, .. })
|
| Self::KeyVerificationKey(KeyVerificationKeyEventContent { relates_to, .. })
|
||||||
| Self::KeyVerificationMac(KeyVerificationMacEventContent { relates_to, .. })
|
| Self::KeyVerificationMac(KeyVerificationMacEventContent { relates_to, .. })
|
||||||
| Self::KeyVerificationDone(KeyVerificationDoneEventContent { relates_to, .. }) => {
|
| Self::KeyVerificationDone(KeyVerificationDoneEventContent { relates_to, .. }) => {
|
||||||
Some(relates_to.clone().into())
|
let key::verification::Relation { event_id } = relates_to;
|
||||||
},
|
Some(encrypted::Relation::Reference(encrypted::Reference {
|
||||||
|
event_id: event_id.clone(),
|
||||||
|
}))
|
||||||
|
}
|
||||||
#[cfg(feature = "unstable-pre-spec")]
|
#[cfg(feature = "unstable-pre-spec")]
|
||||||
Self::Reaction(ev) => Some(ev.relates_to.clone().into()),
|
Self::Reaction(ev) => {
|
||||||
|
let reaction::Relation { event_id, emoji } = &ev.relates_to;
|
||||||
|
Some(encrypted::Relation::Annotation(encrypted::Annotation {
|
||||||
|
event_id: event_id.clone(),
|
||||||
|
key: emoji.clone(),
|
||||||
|
}))
|
||||||
|
}
|
||||||
Self::RoomEncrypted(ev) => ev.relates_to.clone(),
|
Self::RoomEncrypted(ev) => ev.relates_to.clone(),
|
||||||
Self::RoomMessage(ev) => ev.relates_to.clone().map(Into::into),
|
Self::RoomMessage(ev) => ev.relates_to.clone().map(|rel| match rel {
|
||||||
|
message::Relation::Reply { in_reply_to } => {
|
||||||
|
encrypted::Relation::Reply { in_reply_to }
|
||||||
|
}
|
||||||
|
#[cfg(feature = "unstable-pre-spec")]
|
||||||
|
message::Relation::Replacement(re) => {
|
||||||
|
encrypted::Relation::Replacement(encrypted::Replacement {
|
||||||
|
event_id: re.event_id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
message::Relation::_Custom => encrypted::Relation::_Custom,
|
||||||
|
}),
|
||||||
Self::CallAnswer(_)
|
Self::CallAnswer(_)
|
||||||
| Self::CallInvite(_)
|
| Self::CallInvite(_)
|
||||||
| Self::CallHangup(_)
|
| Self::CallHangup(_)
|
||||||
|
@ -11,9 +11,7 @@ use ruma_identifiers::DeviceId;
|
|||||||
use ruma_identifiers::EventId;
|
use ruma_identifiers::EventId;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::room::message::{self, InReplyTo};
|
use crate::room::message::InReplyTo;
|
||||||
#[cfg(feature = "unstable-pre-spec")]
|
|
||||||
use crate::{key::verification, reaction};
|
|
||||||
|
|
||||||
mod relation_serde;
|
mod relation_serde;
|
||||||
|
|
||||||
@ -248,36 +246,6 @@ impl From<MegolmV1AesSha2ContentInit> for MegolmV1AesSha2Content {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Remove on next breaking change release
|
|
||||||
impl From<message::Relation> for Relation {
|
|
||||||
fn from(rel: message::Relation) -> Self {
|
|
||||||
match rel {
|
|
||||||
message::Relation::Reply { in_reply_to } => Self::Reply { in_reply_to },
|
|
||||||
#[cfg(feature = "unstable-pre-spec")]
|
|
||||||
message::Relation::Replacement(re) => {
|
|
||||||
Self::Replacement(Replacement { event_id: re.event_id })
|
|
||||||
}
|
|
||||||
message::Relation::_Custom => Self::_Custom,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "unstable-pre-spec")]
|
|
||||||
impl From<reaction::Relation> for Relation {
|
|
||||||
fn from(rel: reaction::Relation) -> Self {
|
|
||||||
let reaction::Relation { event_id, emoji } = rel;
|
|
||||||
Self::Annotation(Annotation { event_id, key: emoji })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "unstable-pre-spec")]
|
|
||||||
impl From<verification::Relation> for Relation {
|
|
||||||
fn from(rel: verification::Relation) -> Self {
|
|
||||||
let verification::Relation { event_id } = rel;
|
|
||||||
Self::Reference(Reference { event_id })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use matches::assert_matches;
|
use matches::assert_matches;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user