events: Remove reaction bundling
It was removed from the MSC. https://github.com/matrix-org/matrix-spec-proposals/pull/2677
This commit is contained in:
parent
57083ef3f8
commit
f9a40e137e
@ -58,74 +58,6 @@ impl Annotation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Summary of all annotations to an event with the given key and type.
|
|
||||||
#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
|
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
|
||||||
pub struct BundledAnnotation {
|
|
||||||
/// The type of the annotation.
|
|
||||||
#[serde(rename = "type")]
|
|
||||||
pub annotation_type: AnnotationType,
|
|
||||||
|
|
||||||
/// The key used for the annotation.
|
|
||||||
pub key: String,
|
|
||||||
|
|
||||||
/// Time of the bundled annotation being compiled on the server.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub origin_server_ts: Option<MilliSecondsSinceUnixEpoch>,
|
|
||||||
|
|
||||||
/// Number of annotations.
|
|
||||||
pub count: UInt,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
impl BundledAnnotation {
|
|
||||||
/// Creates a new `BundledAnnotation` with the given type, key and count.
|
|
||||||
pub fn new(annotation_type: AnnotationType, key: String, count: UInt) -> Self {
|
|
||||||
Self { annotation_type, key, count, origin_server_ts: None }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates a new `BundledAnnotation` for a reaction with the given key and count.
|
|
||||||
pub fn reaction(key: String, count: UInt) -> Self {
|
|
||||||
Self::new(AnnotationType::Reaction, key, count)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Type of annotation.
|
|
||||||
#[doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/src/doc/string_enum.md"))]
|
|
||||||
#[derive(Clone, PartialEq, Eq, StringEnum)]
|
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
|
||||||
pub enum AnnotationType {
|
|
||||||
/// A reaction.
|
|
||||||
#[ruma_enum(rename = "m.reaction")]
|
|
||||||
Reaction,
|
|
||||||
|
|
||||||
#[doc(hidden)]
|
|
||||||
_Custom(PrivOwnedStr),
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The first chunk of annotations with a token for loading more.
|
|
||||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
|
||||||
pub struct AnnotationChunk {
|
|
||||||
/// The first batch of bundled annotations.
|
|
||||||
pub chunk: Vec<BundledAnnotation>,
|
|
||||||
|
|
||||||
/// Token to receive the next annotation batch.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub next_batch: Option<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
impl AnnotationChunk {
|
|
||||||
/// Creates a new `AnnotationChunk` with the given chunk and next batch token.
|
|
||||||
pub fn new(chunk: Vec<BundledAnnotation>, next_batch: Option<String>) -> Self {
|
|
||||||
Self { chunk, next_batch }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// A bundled replacement.
|
/// A bundled replacement.
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
||||||
@ -292,11 +224,6 @@ impl ReferenceChunk {
|
|||||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||||
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
||||||
pub struct BundledRelations {
|
pub struct BundledRelations {
|
||||||
/// Annotation relations.
|
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
#[serde(rename = "m.annotation", skip_serializing_if = "Option::is_none")]
|
|
||||||
pub annotation: Option<Box<AnnotationChunk>>,
|
|
||||||
|
|
||||||
/// Replacement relation.
|
/// Replacement relation.
|
||||||
#[serde(rename = "m.replace", skip_serializing_if = "Option::is_none")]
|
#[serde(rename = "m.replace", skip_serializing_if = "Option::is_none")]
|
||||||
pub replace: Option<Box<BundledReplacement>>,
|
pub replace: Option<Box<BundledReplacement>>,
|
||||||
@ -313,25 +240,12 @@ pub struct BundledRelations {
|
|||||||
impl BundledRelations {
|
impl BundledRelations {
|
||||||
/// Creates a new empty `BundledRelations`.
|
/// Creates a new empty `BundledRelations`.
|
||||||
pub const fn new() -> Self {
|
pub const fn new() -> Self {
|
||||||
Self {
|
Self { replace: None, thread: None, reference: None }
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
annotation: None,
|
|
||||||
replace: None,
|
|
||||||
thread: None,
|
|
||||||
reference: None,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns `true` if all fields are empty.
|
/// Returns `true` if all fields are empty.
|
||||||
pub fn is_empty(&self) -> bool {
|
pub fn is_empty(&self) -> bool {
|
||||||
#[cfg(not(feature = "unstable-msc2677"))]
|
self.replace.is_none() && self.thread.is_none() && self.reference.is_none()
|
||||||
return self.replace.is_none() && self.thread.is_none() && self.reference.is_none();
|
|
||||||
|
|
||||||
#[cfg(feature = "unstable-msc2677")]
|
|
||||||
return self.annotation.is_none()
|
|
||||||
&& self.replace.is_none()
|
|
||||||
&& self.thread.is_none()
|
|
||||||
&& self.reference.is_none();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user