diff options
| author | Zeyla Hellyer <[email protected]> | 2018-05-21 17:43:06 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2018-05-21 17:43:47 -0700 |
| commit | 0e1e8fbbe564c23530a709a7ec407b08f63944e2 (patch) | |
| tree | 4ec7ff0903ba1911180dd9a0bcf90b1bad608086 /src/model | |
| parent | Add `rls/` dir to .gitignore (diff) | |
| download | serenity-0e1e8fbbe564c23530a709a7ec407b08f63944e2.tar.xz serenity-0e1e8fbbe564c23530a709a7ec407b08f63944e2.zip | |
Add `Message::member` structfield
Adds the `Message::member` structfield, which contains a partial amount
of member data (deaf and mute status, role IDs, and joined_at).
Diffstat (limited to 'src/model')
| -rw-r--r-- | src/model/channel/message.rs | 3 | ||||
| -rw-r--r-- | src/model/guild/member.rs | 22 |
2 files changed, 23 insertions, 2 deletions
diff --git a/src/model/channel/message.rs b/src/model/channel/message.rs index 566107b..978e181 100644 --- a/src/model/channel/message.rs +++ b/src/model/channel/message.rs @@ -40,6 +40,9 @@ pub struct Message { /// message or a system message. #[serde(rename = "type")] pub kind: MessageType, + /// A partial amount of data about the user's member data, if this message + /// was sent in a guild. + pub member: Option<PartialMember>, /// Indicator of whether the message mentions everyone. pub mention_everyone: bool, /// Array of [`Role`]s' Ids mentioned in the message. diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs index 9be2d85..cc6bc2a 100644 --- a/src/model/guild/member.rs +++ b/src/model/guild/member.rs @@ -1,8 +1,8 @@ use model::prelude::*; use chrono::{DateTime, FixedOffset}; use std::fmt::{ - Display, - Formatter, + Display, + Formatter, Result as FmtResult }; use super::deserialize_sync_user; @@ -462,3 +462,21 @@ impl Display for Member { Display::fmt(&self.user.read().mention(), f) } } + +/// A partial amount of data for a member. +/// +/// This is used in [`Message`]s from [`Guild`]s. +/// +/// [`Guild`]: struct.Guild.html +/// [`Message`]: ../channel/struct.Message.html +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct PartialMember { + /// Indicator of whether the member can hear in voice channels. + pub deaf: bool, + /// Timestamp representing the date when the member joined. + pub joined_at: Option<DateTime<FixedOffset>>, + /// Indicator of whether the member can speak in voice channels. + pub mute: bool, + /// Vector of Ids of [`Role`]s given to the member. + pub roles: Vec<RoleId>, +} |