Use ruma-identifiers types for ID values.
This commit is contained in:
parent
223eab97c8
commit
5326091981
@ -11,6 +11,7 @@ repository = "https://github.com/ruma/ruma-events"
|
||||
version = "0.1.0"
|
||||
|
||||
[dependencies]
|
||||
ruma-identifiers = "0.2.0"
|
||||
serde = "0.8.0"
|
||||
serde_json = "0.8.0"
|
||||
serde_macros = "0.8.0"
|
||||
|
16
src/lib.rs
16
src/lib.rs
@ -5,11 +5,13 @@
|
||||
#![plugin(serde_macros)]
|
||||
#![deny(missing_docs)]
|
||||
|
||||
extern crate ruma_identifiers;
|
||||
extern crate serde;
|
||||
extern crate serde_json;
|
||||
|
||||
use std::fmt::{Display, Formatter, Error as FmtError};
|
||||
|
||||
use ruma_identifiers::{EventId, RoomId, UserId};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
|
||||
@ -22,7 +24,7 @@ pub mod tag;
|
||||
pub mod typing;
|
||||
|
||||
/// The type of an event.
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
|
||||
pub enum EventType {
|
||||
/// m.call.answer
|
||||
CallAnswer,
|
||||
@ -94,7 +96,7 @@ pub struct RoomEvent<C, E> where C: Deserialize + Serialize, E: Deserialize + Se
|
||||
pub content: C,
|
||||
|
||||
/// The unique identifier for the event.
|
||||
pub event_id: String,
|
||||
pub event_id: EventId,
|
||||
|
||||
/// Extra top-level key-value pairs specific to this event type, but that are not under the
|
||||
/// `content` field.
|
||||
@ -105,14 +107,14 @@ pub struct RoomEvent<C, E> where C: Deserialize + Serialize, E: Deserialize + Se
|
||||
pub event_type: EventType,
|
||||
|
||||
/// The unique identifier for the room associated with this event.
|
||||
pub room_id: String,
|
||||
pub room_id: RoomId,
|
||||
|
||||
/// Additional key-value pairs not signed by the homeserver.
|
||||
pub unsigned: Option<Value>,
|
||||
|
||||
/// The unique identifier for the user associated with this event.
|
||||
#[serde(rename="sender")]
|
||||
pub user_id: String,
|
||||
pub user_id: UserId,
|
||||
}
|
||||
|
||||
/// An event that describes persistent state about a room.
|
||||
@ -122,7 +124,7 @@ pub struct StateEvent<C, E> where C: Deserialize + Serialize, E: Deserialize + S
|
||||
pub content: C,
|
||||
|
||||
/// The unique identifier for the event.
|
||||
pub event_id: String,
|
||||
pub event_id: EventId,
|
||||
|
||||
/// The type of the event.
|
||||
#[serde(rename="type")]
|
||||
@ -136,7 +138,7 @@ pub struct StateEvent<C, E> where C: Deserialize + Serialize, E: Deserialize + S
|
||||
pub prev_content: Option<C>,
|
||||
|
||||
/// The unique identifier for the room associated with this event.
|
||||
pub room_id: String,
|
||||
pub room_id: RoomId,
|
||||
|
||||
/// A key that determines which piece of room state the event represents.
|
||||
pub state_key: String,
|
||||
@ -146,7 +148,7 @@ pub struct StateEvent<C, E> where C: Deserialize + Serialize, E: Deserialize + S
|
||||
|
||||
/// The unique identifier for the user associated with this event.
|
||||
#[serde(rename="sender")]
|
||||
pub user_id: String,
|
||||
pub user_id: UserId,
|
||||
}
|
||||
|
||||
impl Display for EventType {
|
||||
|
@ -1,5 +1,7 @@
|
||||
//! Types for the *m.presence* event.
|
||||
|
||||
use ruma_identifiers::{EventId, UserId};
|
||||
|
||||
use Event;
|
||||
|
||||
/// Informs the client of a user's presence state change.
|
||||
@ -24,7 +26,7 @@ pub struct PresenceEventContent {
|
||||
pub presence: PresenceState,
|
||||
|
||||
/// The unique identifier for the user associated with this event.
|
||||
pub user_id: String,
|
||||
pub user_id: UserId,
|
||||
}
|
||||
|
||||
/// A description of a user's connectivity and availability for chat.
|
||||
@ -50,5 +52,5 @@ pub enum PresenceState {
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct PresenceEventExtraContent {
|
||||
/// The unique identifier for the event.
|
||||
pub event_id: String,
|
||||
pub event_id: EventId,
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
use ruma_identifiers::RoomId;
|
||||
|
||||
use Event;
|
||||
|
||||
/// Informs the client of new receipts.
|
||||
@ -36,5 +38,5 @@ pub struct Receipt {
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct ReceiptEventExtraContent {
|
||||
/// The unique identifier for the room associated with this event.
|
||||
pub room_id: String,
|
||||
pub room_id: RoomId,
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
//! Types for the *m.room.aliases* event.
|
||||
|
||||
use ruma_identifiers::RoomAliasId;
|
||||
|
||||
use StateEvent;
|
||||
|
||||
/// Informs the room about what room aliases it has been given.
|
||||
@ -9,5 +11,5 @@ pub type AliasesEvent = StateEvent<AliasesEventContent, ()>;
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct AliasesEventContent {
|
||||
/// A list of room aliases.
|
||||
pub aliases: Vec<String>,
|
||||
pub aliases: Vec<RoomAliasId>,
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
//! Types for the *m.room.canonical_alias* event.
|
||||
|
||||
use ruma_identifiers::RoomAliasId;
|
||||
|
||||
use StateEvent;
|
||||
|
||||
/// Informs the room as to which alias is the canonical one.
|
||||
@ -9,5 +11,5 @@ pub type CanonicalAliasEvent = StateEvent<CanonicalAliasEventContent, ()>;
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct CanonicalAliasEventContent {
|
||||
/// The canonical alias.
|
||||
pub alias: String,
|
||||
pub alias: RoomAliasId,
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
//! Types for the *m.room.create* event.
|
||||
|
||||
use ruma_identifiers::UserId;
|
||||
|
||||
use StateEvent;
|
||||
|
||||
/// This is the first event in a room and cannot be changed. It acts as the root of all other
|
||||
@ -10,7 +12,7 @@ pub type CreateEvent = StateEvent<CreateEventContent, ()>;
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct CreateEventContent {
|
||||
/// The `user_id` of the room creator. This is set by the homeserver.
|
||||
pub creator: String,
|
||||
pub creator: UserId,
|
||||
/// Whether or not this room's data should be transferred to other homeservers.
|
||||
pub federate: bool,
|
||||
}
|
||||
|
@ -2,7 +2,9 @@
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
use StateEvent;
|
||||
use ruma_identifiers::UserId;
|
||||
|
||||
use {EventType, StateEvent};
|
||||
|
||||
/// Defines the power levels (privileges) of users in the room.
|
||||
pub type PowerLevelsEvent = StateEvent<PowerLevelsEventContent, ()>;
|
||||
@ -16,7 +18,7 @@ pub struct PowerLevelsEventContent {
|
||||
/// The level required to send specific event types.
|
||||
///
|
||||
/// This is a mapping from event type to power level required.
|
||||
pub events: HashMap<String, u64>,
|
||||
pub events: HashMap<EventType, u64>,
|
||||
|
||||
/// The default level required to send message events.
|
||||
pub events_default: u64,
|
||||
@ -36,7 +38,7 @@ pub struct PowerLevelsEventContent {
|
||||
/// The power levels for specific users.
|
||||
///
|
||||
/// This is a mapping from `user_id` to power level for that user.
|
||||
pub users: HashMap<String, u64>,
|
||||
pub users: HashMap<UserId, u64>,
|
||||
|
||||
/// The default power level for every user in the room.
|
||||
pub users_default: u64,
|
||||
|
@ -1,5 +1,7 @@
|
||||
//! Types for the *m.room.redaction* event.
|
||||
|
||||
use ruma_identifiers::EventId;
|
||||
|
||||
use RoomEvent;
|
||||
|
||||
/// A redaction of an event.
|
||||
@ -16,5 +18,5 @@ pub struct RedactionEventContent {
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct RedactionEventExtraContent {
|
||||
/// The ID of the event that was redacted.
|
||||
pub redacts: String,
|
||||
pub redacts: EventId,
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
//! Types for the *m.typing* event.
|
||||
|
||||
use ruma_identifiers::{EventId, RoomId};
|
||||
|
||||
use Event;
|
||||
|
||||
/// Informs the client of the list of users currently typing.
|
||||
@ -9,12 +11,12 @@ pub type TypingEvent = Event<TypingEventContent, TypingEventExtraContent>;
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct TypingEventContent {
|
||||
/// The list of user IDs typing in this room, if any.
|
||||
pub user_ids: Vec<String>,
|
||||
pub user_ids: Vec<EventId>,
|
||||
}
|
||||
|
||||
/// Extra content for a `TypingEvent`.
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct TypingEventExtraContent {
|
||||
/// The unique identifier for the room associated with this event.
|
||||
pub room_id: String,
|
||||
pub room_id: RoomId,
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user