Use ruma_event for ignored_user_list

This commit is contained in:
Jonas Platte 2020-05-02 21:19:06 +02:00
parent 24f519ba29
commit 23204d7948
No known key found for this signature in database
GPG Key ID: 7D261D771D915378

View File

@ -1,68 +1,18 @@
//! Types for the *m.ignored_user_list* event.
use ruma_events_macros::ruma_event;
use ruma_identifiers::UserId;
use serde::{Deserialize, Serialize};
use crate::{EventType, FromRaw};
/// A list of users to ignore.
#[derive(Clone, Debug, Serialize)]
#[serde(rename = "m.ignored_user_list", tag = "type")]
pub struct IgnoredUserListEvent {
/// The event's content.
pub content: IgnoredUserListEventContent,
}
impl FromRaw for IgnoredUserListEvent {
type Raw = raw::IgnoredUserListEvent;
fn from_raw(raw: raw::IgnoredUserListEvent) -> Self {
Self {
content: FromRaw::from_raw(raw.content),
}
}
}
/// The payload for `IgnoredUserListEvent`.
#[derive(Clone, Debug, Serialize)]
pub struct IgnoredUserListEventContent {
ruma_event! {
/// A list of users to ignore.
#[serde(with = "ruma_serde::vec_as_map_of_empty")]
pub ignored_users: Vec<UserId>,
}
impl FromRaw for IgnoredUserListEventContent {
type Raw = raw::IgnoredUserListEventContent;
fn from_raw(raw: raw::IgnoredUserListEventContent) -> Self {
Self {
ignored_users: raw.ignored_users,
}
}
}
impl_event!(
IgnoredUserListEvent,
IgnoredUserListEventContent,
EventType::IgnoredUserList
);
pub(crate) mod raw {
use super::*;
/// A list of users to ignore.
#[derive(Clone, Debug, Deserialize)]
pub struct IgnoredUserListEvent {
/// The event's content.
pub content: IgnoredUserListEventContent,
}
/// The payload for `IgnoredUserListEvent`.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct IgnoredUserListEventContent {
/// A list of users to ignore.
#[serde(with = "ruma_serde::vec_as_map_of_empty")]
pub ignored_users: Vec<UserId>,
IgnoredUserListEvent {
kind: Event,
event_type: "m.ignored_user_list",
content: {
/// A list of users to ignore.
#[serde(with = "ruma_serde::vec_as_map_of_empty")]
pub ignored_users: Vec<UserId>,
},
}
}