11use std:: ops:: Deref ;
22
3+ use crate :: CacheableMember ;
34use serde:: Serialize ;
5+ use twilight_model:: user:: AvatarDecorationData ;
46use twilight_model:: {
57 application:: interaction:: InteractionMember ,
68 gateway:: payload:: incoming:: MemberUpdate ,
@@ -12,8 +14,6 @@ use twilight_model::{
1214 util:: { ImageHash , Timestamp } ,
1315} ;
1416
15- use crate :: CacheableMember ;
16-
1717/// Computed components required to complete a full cached interaction member
1818/// by implementing [`CacheableMember`].
1919#[ derive( Clone , Debug , Eq , PartialEq ) ]
@@ -44,6 +44,8 @@ impl Deref for ComputedInteractionMember {
4444#[ derive( Clone , Debug , Eq , PartialEq , Serialize ) ]
4545pub struct CachedMember {
4646 pub ( crate ) avatar : Option < ImageHash > ,
47+ pub ( crate ) avatar_decoration_data : Option < AvatarDecorationData > ,
48+ pub ( crate ) banner : Option < ImageHash > ,
4749 pub ( crate ) communication_disabled_until : Option < Timestamp > ,
4850 pub ( crate ) deaf : Option < bool > ,
4951 pub ( crate ) flags : MemberFlags ,
@@ -126,7 +128,6 @@ impl CachedMember {
126128
127129impl From < Member > for CachedMember {
128130 fn from ( member : Member ) -> Self {
129- #[ allow( unused_variables) ]
130131 let Member {
131132 avatar,
132133 avatar_decoration_data,
@@ -145,6 +146,8 @@ impl From<Member> for CachedMember {
145146
146147 Self {
147148 avatar,
149+ avatar_decoration_data,
150+ banner,
148151 communication_disabled_until,
149152 deaf : Some ( deaf) ,
150153 flags,
@@ -170,6 +173,8 @@ impl From<ComputedInteractionMember> for CachedMember {
170173 } = member;
171174 let InteractionMember {
172175 avatar : _,
176+ avatar_decoration_data,
177+ banner,
173178 communication_disabled_until,
174179 flags,
175180 joined_at,
@@ -182,6 +187,8 @@ impl From<ComputedInteractionMember> for CachedMember {
182187
183188 Self {
184189 avatar,
190+ avatar_decoration_data,
191+ banner,
185192 communication_disabled_until,
186193 deaf,
187194 flags,
@@ -200,6 +207,8 @@ impl From<(Id<UserMarker>, PartialMember)> for CachedMember {
200207 fn from ( ( user_id, member) : ( Id < UserMarker > , PartialMember ) ) -> Self {
201208 let PartialMember {
202209 avatar,
210+ avatar_decoration_data,
211+ banner,
203212 communication_disabled_until,
204213 deaf,
205214 flags,
@@ -214,6 +223,8 @@ impl From<(Id<UserMarker>, PartialMember)> for CachedMember {
214223
215224 Self {
216225 avatar,
226+ avatar_decoration_data,
227+ banner,
217228 communication_disabled_until,
218229 deaf : Some ( deaf) ,
219230 flags,
@@ -325,6 +336,8 @@ mod tests {
325336 let flags = MemberFlags :: BYPASSES_VERIFICATION | MemberFlags :: DID_REJOIN ;
326337 CachedMember {
327338 avatar : None ,
339+ avatar_decoration_data : None ,
340+ banner : None ,
328341 communication_disabled_until : None ,
329342 deaf : Some ( false ) ,
330343 flags,
@@ -393,6 +406,8 @@ mod tests {
393406
394407 let member = PartialMember {
395408 avatar : None ,
409+ avatar_decoration_data : None ,
410+ banner : None ,
396411 communication_disabled_until : None ,
397412 deaf : false ,
398413 flags,
0 commit comments