1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
//! Types for the *m.room.power_levels* event. use std::collections::HashMap; use ruma_identifiers::UserId; use EventType; state_event! { /// Defines the power levels (privileges) of users in the room. pub struct PowerLevelsEvent(PowerLevelsEventContent) {} } /// The payload of a `PowerLevelsEvent`. #[derive(Clone, Debug, Deserialize, Serialize)] pub struct PowerLevelsEventContent { /// The level required to ban a user. pub ban: u64, /// The level required to send specific event types. /// /// This is a mapping from event type to power level required. pub events: HashMap<EventType, u64>, /// The default level required to send message events. pub events_default: u64, /// The level required to invite a user. pub invite: u64, /// The level required to kick a user. pub kick: u64, /// The level required to redact an event. pub redact: u64, /// The default level required to send state events. pub state_default: u64, /// The power levels for specific users. /// /// This is a mapping from `user_id` to power level for that user. pub users: HashMap<UserId, u64>, /// The default power level for every user in the room. pub users_default: u64, }