Skip to content
6 changes: 5 additions & 1 deletion twilight-cache-inmemory/src/event/interaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ mod tests {
Message,
},
gateway::payload::incoming::InteractionCreate,
guild::{PartialMember, Permissions, Role},
guild::{MemberFlags, PartialMember, Permissions, Role},
id::Id,
user::User,
util::{image_hash::ImageHashParseError, ImageHash, Timestamp},
Expand All @@ -94,6 +94,7 @@ mod tests {
// let avatar1 = ImageHash::parse(b"1ef6bca4fddaa303a9cd32dd70fb395d")?;
let avatar2 = ImageHash::parse(b"3a43231a99f4dfcf0fd94d1d8defd301")?;
let avatar3 = ImageHash::parse(b"5e23c298295ad37936cfe24ad314774f")?;
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;

let cache = InMemoryCache::new();

Expand All @@ -115,6 +116,7 @@ mod tests {
InteractionMember {
avatar: None,
communication_disabled_until: None,
flags,
joined_at: timestamp,
nick: None,
pending: false,
Expand Down Expand Up @@ -161,6 +163,7 @@ mod tests {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
joined_at: timestamp,
mute: false,
nick: Some("member nick".to_owned()),
Expand Down Expand Up @@ -236,6 +239,7 @@ mod tests {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
joined_at: timestamp,
mute: false,
nick: None,
Expand Down
4 changes: 3 additions & 1 deletion twilight-cache-inmemory/src/event/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ mod tests {
use twilight_model::{
channel::message::{Message, MessageFlags, MessageType},
gateway::payload::incoming::MessageCreate,
guild::PartialMember,
guild::{MemberFlags, PartialMember},
id::Id,
user::User,
util::{image_hash::ImageHashParseError, ImageHash, Timestamp},
Expand All @@ -149,6 +149,7 @@ mod tests {
.build();

let avatar = ImageHash::parse(b"e91c75bc7656063cc745f4e79d0b7664")?;
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;
let mut msg = Message {
activity: None,
application: None,
Expand Down Expand Up @@ -185,6 +186,7 @@ mod tests {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
joined_at,
mute: false,
nick: Some("member nick".to_owned()),
Expand Down
4 changes: 3 additions & 1 deletion twilight-cache-inmemory/src/event/voice_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ mod tests {
use std::str::FromStr;
use twilight_model::{
gateway::payload::incoming::VoiceStateUpdate,
guild::Member,
guild::{Member, MemberFlags},
id::{
marker::{ChannelMarker, GuildMarker, UserMarker},
Id,
Expand Down Expand Up @@ -286,6 +286,7 @@ mod tests {
let cache = InMemoryCache::new();

let avatar = ImageHash::parse(b"169280485ba78d541a9090e7ea35a14e")?;
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;

let mutation = VoiceStateUpdate(VoiceState {
channel_id: Some(Id::new(4)),
Expand All @@ -295,6 +296,7 @@ mod tests {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
guild_id: Id::new(2),
joined_at,
mute: false,
Expand Down
4 changes: 3 additions & 1 deletion twilight-cache-inmemory/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -923,7 +923,7 @@ mod tests {
use crate::{test, InMemoryCache};
use twilight_model::{
gateway::payload::incoming::RoleDelete,
guild::{Member, Permissions, Role},
guild::{Member, MemberFlags, Permissions, Role},
id::Id,
util::Timestamp,
};
Expand Down Expand Up @@ -953,12 +953,14 @@ mod tests {
let cache = InMemoryCache::new();
let guild_id = Id::new(1);
let user = test::user(Id::new(1));
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;
cache.cache_member(
guild_id,
Member {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
guild_id,
joined_at,
mute: false,
Expand Down
18 changes: 15 additions & 3 deletions twilight-cache-inmemory/src/model/member.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use serde::Serialize;
use twilight_model::{
application::interaction::application_command::InteractionMember,
guild::{Member, PartialMember},
guild::{Member, MemberFlags, PartialMember},
id::{
marker::{GuildMarker, RoleMarker, UserMarker},
Id,
Expand All @@ -25,6 +25,7 @@ pub struct CachedMember {
pub(crate) avatar: Option<ImageHash>,
pub(crate) communication_disabled_until: Option<Timestamp>,
pub(crate) deaf: Option<bool>,
pub(crate) flags: MemberFlags,
pub(crate) guild_id: Id<GuildMarker>,
pub(crate) joined_at: Timestamp,
pub(crate) mute: Option<bool>,
Expand Down Expand Up @@ -106,6 +107,7 @@ impl CachedMember {
avatar,
communication_disabled_until,
deaf,
flags,
guild_id,
joined_at,
mute,
Expand All @@ -120,6 +122,7 @@ impl CachedMember {
avatar,
communication_disabled_until,
deaf: Some(deaf),
flags,
guild_id,
joined_at,
mute: Some(mute),
Expand All @@ -143,6 +146,7 @@ impl CachedMember {
let InteractionMember {
avatar: _,
communication_disabled_until,
flags,
joined_at,
nick,
pending,
Expand All @@ -156,6 +160,7 @@ impl CachedMember {
avatar,
communication_disabled_until,
deaf,
flags,
guild_id,
joined_at,
mute,
Expand All @@ -176,6 +181,7 @@ impl CachedMember {
avatar,
communication_disabled_until,
deaf,
flags,
joined_at,
mute,
nick,
Expand All @@ -189,6 +195,7 @@ impl CachedMember {
avatar,
communication_disabled_until,
deaf: Some(deaf),
flags,
guild_id,
joined_at,
mute: Some(mute),
Expand Down Expand Up @@ -242,7 +249,7 @@ mod tests {
use super::CachedMember;
use static_assertions::assert_fields;
use twilight_model::{
guild::{Member, PartialMember},
guild::{Member, MemberFlags, PartialMember},
id::Id,
user::User,
util::Timestamp,
Expand All @@ -262,11 +269,12 @@ mod tests {

fn cached_member() -> CachedMember {
let joined_at = Timestamp::from_secs(1_632_072_645).expect("non zero");

let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;
CachedMember {
avatar: None,
communication_disabled_until: None,
deaf: Some(false),
flags,
guild_id: Id::new(3),
joined_at,
mute: Some(true),
Expand Down Expand Up @@ -301,11 +309,13 @@ mod tests {
#[test]
fn eq_member() {
let joined_at = Timestamp::from_secs(1_632_072_645).expect("non zero");
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;

let member = Member {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
guild_id: Id::new(3),
joined_at,
mute: true,
Expand All @@ -322,11 +332,13 @@ mod tests {
#[test]
fn eq_partial_member() {
let joined_at = Timestamp::from_secs(1_632_072_645).expect("non zero");
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;

let member = PartialMember {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
joined_at,
mute: true,
nick: Some("member nick".to_owned()),
Expand Down
10 changes: 8 additions & 2 deletions twilight-cache-inmemory/src/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ use twilight_model::{
GatewayReaction,
},
guild::{
DefaultMessageNotificationLevel, Emoji, ExplicitContentFilter, Guild, Member, MfaLevel,
NSFWLevel, PartialMember, Permissions, PremiumTier, Role, SystemChannelFlags,
DefaultMessageNotificationLevel, Emoji, ExplicitContentFilter, Guild, Member, MemberFlags,
MfaLevel, NSFWLevel, PartialMember, Permissions, PremiumTier, Role, SystemChannelFlags,
VerificationLevel,
},
id::{
Expand All @@ -34,6 +34,7 @@ pub fn cache_with_message_and_reactions() -> InMemoryCache {
let joined_at = Timestamp::from_secs(1_632_072_645).expect("non zero");
let cache = InMemoryCache::new();
let avatar = ImageHash::parse(b"6961d9f1fdb5880bf4a3ec6348d3bbcf").unwrap();
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;

let msg = Message {
activity: None,
Expand Down Expand Up @@ -71,6 +72,7 @@ pub fn cache_with_message_and_reactions() -> InMemoryCache {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
joined_at,
mute: false,
nick: Some("member nick".to_owned()),
Expand Down Expand Up @@ -106,6 +108,7 @@ pub fn cache_with_message_and_reactions() -> InMemoryCache {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
guild_id: Id::new(1),
joined_at,
mute: false,
Expand Down Expand Up @@ -144,6 +147,7 @@ pub fn cache_with_message_and_reactions() -> InMemoryCache {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
guild_id: Id::new(1),
joined_at,
mute: false,
Expand Down Expand Up @@ -267,11 +271,13 @@ pub fn guild_channel_text() -> (Id<GuildMarker>, Id<ChannelMarker>, Channel) {

pub fn member(id: Id<UserMarker>, guild_id: Id<GuildMarker>) -> Member {
let joined_at = Timestamp::from_secs(1_632_072_645).expect("non zero");
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;

Member {
avatar: None,
communication_disabled_until: None,
deaf: false,
flags,
guild_id,
joined_at,
mute: false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::{
channel::{thread::ThreadMetadata, Attachment, ChannelType, Message},
guild::{Permissions, Role},
guild::{MemberFlags, Permissions, Role},
id::{
marker::{AttachmentMarker, ChannelMarker, MessageMarker, RoleMarker, UserMarker},
Id,
Expand Down Expand Up @@ -75,6 +75,8 @@ pub struct InteractionMember {
pub avatar: Option<ImageHash>,
/// If the member is timed out, when the timeout will expire.
pub communication_disabled_until: Option<Timestamp>,
/// The flags for the member.
pub flags: MemberFlags,
/// Member guild join date.
pub joined_at: Timestamp,
/// Member nickname.
Expand Down Expand Up @@ -102,7 +104,7 @@ mod tests {
},
Attachment, ChannelType, Message,
},
guild::{PartialMember, Permissions, Role},
guild::{MemberFlags, PartialMember, Permissions, Role},
id::Id,
test::image_hash,
user::{PremiumType, User, UserFlags},
Expand All @@ -116,6 +118,7 @@ mod tests {
fn test_data_resolved() -> Result<(), TimestampParseError> {
let joined_at = Timestamp::from_str("2021-08-10T12:18:37.000000+00:00")?;
let timestamp = Timestamp::from_str("2020-02-02T02:02:02.020000+00:00")?;
let flags = MemberFlags::BYPASSES_VERIFICATION | MemberFlags::DID_REJOIN;

let value = CommandInteractionDataResolved {
attachments: IntoIterator::into_iter([(
Expand Down Expand Up @@ -151,6 +154,7 @@ mod tests {
InteractionMember {
avatar: None,
communication_disabled_until: None,
flags,
joined_at,
nick: None,
pending: false,
Expand Down Expand Up @@ -197,6 +201,7 @@ mod tests {
member: Some(PartialMember {
avatar: None,
communication_disabled_until: None,
flags,
deaf: false,
joined_at,
mute: false,
Expand Down Expand Up @@ -332,10 +337,12 @@ mod tests {
Token::Str("300"),
Token::Struct {
name: "InteractionMember",
len: 6,
len: 7,
},
Token::Str("communication_disabled_until"),
Token::None,
Token::Str("flags"),
Token::U64(flags.bits()),
Token::Str("joined_at"),
Token::Str("2021-08-10T12:18:37.000000+00:00"),
Token::Str("nick"),
Expand Down Expand Up @@ -408,12 +415,14 @@ mod tests {
Token::Some,
Token::Struct {
name: "PartialMember",
len: 7,
len: 8,
},
Token::Str("communication_disabled_until"),
Token::None,
Token::Str("deaf"),
Token::Bool(false),
Token::Str("flags"),
Token::U64(flags.bits()),
Token::Str("joined_at"),
Token::Str("2021-08-10T12:18:37.000000+00:00"),
Token::Str("mute"),
Expand Down
Loading