aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorZeyla Hellyer <[email protected]>2018-05-21 17:43:06 -0700
committerZeyla Hellyer <[email protected]>2018-05-21 17:43:47 -0700
commit0e1e8fbbe564c23530a709a7ec407b08f63944e2 (patch)
tree4ec7ff0903ba1911180dd9a0bcf90b1bad608086 /src/model
parentAdd `rls/` dir to .gitignore (diff)
downloadserenity-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.rs3
-rw-r--r--src/model/guild/member.rs22
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>,
+}