Replace state.rs, messages.rs by event_kinds.rs, content_enums.rs

This commit is contained in:
Jonas Platte 2020-06-07 16:01:35 +02:00
parent aa7a54015c
commit 315ac55d46
No known key found for this signature in database
GPG Key ID: 7D261D771D915378
4 changed files with 62 additions and 81 deletions

36
src/content_enums.rs Normal file
View File

@ -0,0 +1,36 @@
use ruma_events_macros::event_content_enum;
event_content_enum! {
/// Any message event's content.
name: AnyMessageEventContent,
events: [
"m.call.answer",
"m.call.invite",
"m.call.hangup",
"m.call.candidates",
"m.sticker",
]
}
event_content_enum! {
/// Amy state event's content.
name: AnyStateEventContent,
events: [
"m.room.aliases",
"m.room.avatar",
"m.room.canonical_alias",
"m.room.create",
"m.room.encryption",
"m.room.guest_access",
"m.room.history_visibility",
"m.room.join_rules",
"m.room.member",
"m.room.name",
"m.room.pinned_events",
"m.room.power_levels",
"m.room.server_acl",
"m.room.third_party_invite",
"m.room.tombstone",
"m.room.topic",
]
}

View File

@ -1,42 +1,38 @@
//! An enum that represents any state event. A state event is represented by
//! a parameterized struct allowing more flexibility in whats being sent.
use std::{ use std::{
convert::TryFrom, convert::TryFrom,
time::{SystemTime, UNIX_EPOCH}, time::{SystemTime, UNIX_EPOCH},
}; };
use js_int::UInt; use js_int::UInt;
use ruma_events_macros::Event;
use ruma_identifiers::{EventId, RoomId, UserId}; use ruma_identifiers::{EventId, RoomId, UserId};
use serde::{ use serde::{
ser::{Error, SerializeStruct}, ser::{Error, SerializeStruct},
Serialize, Serializer, Serialize, Serializer,
}; };
use crate::{RoomEventContent, StateEventContent, TryFromRaw, UnsignedData}; use crate::{MessageEventContent, RoomEventContent, StateEventContent, TryFromRaw, UnsignedData};
use ruma_events_macros::{event_content_enum, Event};
event_content_enum! { /// Message event.
/// A state event. #[derive(Clone, Debug, Event)]
name: AnyStateEventContent, pub struct MessageEvent<C: MessageEventContent> {
events: [ /// Data specific to the event type.
"m.room.aliases", pub content: C,
"m.room.avatar",
"m.room.canonical_alias", /// The globally unique event identifier for the user who sent the event.
"m.room.create", pub event_id: EventId,
"m.room.encryption",
"m.room.guest_access", /// Contains the fully-qualified ID of the user who sent this event.
"m.room.history_visibility", pub sender: UserId,
"m.room.join_rules",
"m.room.member", /// Timestamp in milliseconds on originating homeserver when this event was sent.
"m.room.name", pub origin_server_ts: SystemTime,
"m.room.pinned_events",
"m.room.power_levels", /// The ID of the room associated with this event.
"m.room.server_acl", pub room_id: RoomId,
"m.room.third_party_invite",
"m.room.tombstone", /// Additional key-value pairs not signed by the homeserver.
"m.room.topic", pub unsigned: UnsignedData,
]
} }
/// State event. /// State event.

View File

@ -130,12 +130,12 @@ use serde_json::value::RawValue as RawJsonValue;
pub use ruma_serde::empty::Empty; pub use ruma_serde::empty::Empty;
mod algorithm; mod algorithm;
mod content_enums;
mod error; mod error;
mod event_kinds;
mod event_type; mod event_type;
mod from_raw; mod from_raw;
mod json; mod json;
mod message;
mod state;
#[doc(hidden)] // only public for external tests #[doc(hidden)] // only public for external tests
pub mod util; pub mod util;
@ -165,12 +165,12 @@ pub mod typing;
pub use self::{ pub use self::{
algorithm::Algorithm, algorithm::Algorithm,
content_enums::{AnyMessageEventContent, AnyStateEventContent},
error::{FromStrError, InvalidEvent, InvalidInput}, error::{FromStrError, InvalidEvent, InvalidInput},
event_kinds::{MessageEvent, StateEvent},
event_type::EventType, event_type::EventType,
from_raw::{FromRaw, TryFromRaw}, from_raw::{FromRaw, TryFromRaw},
json::EventJson, json::EventJson,
message::{AnyMessageEventContent, MessageEvent},
state::{AnyStateEventContent, StateEvent},
}; };
/// Extra information about an event that is not incorporated into the event's /// Extra information about an event that is not incorporated into the event's

View File

@ -1,51 +0,0 @@
//! An enum that represents any message event. A message event is represented by
//! a parameterized struct allowing more flexibility in whats being sent.
use std::{
convert::TryFrom,
time::{SystemTime, UNIX_EPOCH},
};
use js_int::UInt;
use ruma_identifiers::{EventId, RoomId, UserId};
use serde::{
ser::{Error, SerializeStruct},
Serialize, Serializer,
};
use crate::{MessageEventContent, RoomEventContent, UnsignedData};
use ruma_events_macros::{event_content_enum, Event};
event_content_enum! {
/// A message event.
name: AnyMessageEventContent,
events: [
"m.call.answer",
"m.call.invite",
"m.call.hangup",
"m.call.candidates",
"m.sticker",
]
}
/// Message event.
#[derive(Clone, Debug, Event)]
pub struct MessageEvent<C: MessageEventContent> {
/// Data specific to the event type.
pub content: C,
/// The globally unique event identifier for the user who sent the event.
pub event_id: EventId,
/// Contains the fully-qualified ID of the user who sent this event.
pub sender: UserId,
/// Timestamp in milliseconds on originating homeserver when this event was sent.
pub origin_server_ts: SystemTime,
/// The ID of the room associated with this event.
pub room_id: RoomId,
/// Additional key-value pairs not signed by the homeserver.
pub unsigned: UnsignedData,
}