@@ -11,8 +11,6 @@ use crate::internal::tokio::spawn_named;
1111use crate :: model:: channel:: ChannelType ;
1212use crate :: model:: event:: Event ;
1313use crate :: model:: guild:: Member ;
14- #[ cfg( feature = "cache" ) ]
15- use crate :: model:: id:: GuildId ;
1614
1715#[ cfg( feature = "cache" ) ]
1816macro_rules! if_cache {
@@ -144,7 +142,7 @@ fn update_cache_with_event(
144142 }
145143 } ,
146144 Event :: ChannelDelete ( mut event) => {
147- let cached_messages = if_cache ! ( event . update ( cache) ) ;
145+ let cached_messages = if_cache ! ( update_cache! ( cache, event ) ) ;
148146
149147 let channel = event. channel ;
150148 if channel. base . kind == ChannelType :: Category {
@@ -162,7 +160,7 @@ fn update_cache_with_event(
162160 pin : event,
163161 } ,
164162 Event :: ChannelUpdate ( mut event) => {
165- let old_channel = if_cache ! ( event . update ( cache) ) ;
163+ let old_channel = if_cache ! ( update_cache! ( cache, event ) ) ;
166164
167165 FullEvent :: ChannelUpdate {
168166 old : old_channel,
@@ -182,22 +180,13 @@ fn update_cache_with_event(
182180 unbanned_user : event. user ,
183181 } ,
184182 Event :: GuildCreate ( mut event) => {
185- let is_new = if_cache ! ( Some ( !cache. unavailable_guilds. contains( & event. guild. id) ) ) ;
186-
187- update_cache ! ( cache, event) ;
183+ let is_new = if_cache ! ( Some ( !cache. unavailable_guilds( ) . contains( & event. guild. id) ) ) ;
188184
189185 #[ cfg( feature = "cache" ) ]
190- {
191- if cache. unavailable_guilds . len ( ) == 0 {
192- cache. unavailable_guilds . shrink_to_fit ( ) ;
193-
194- let guild_amount =
195- cache. guilds . iter ( ) . map ( |i| * i. key ( ) ) . collect :: < Vec < GuildId > > ( ) ;
196-
197- extra_event = Some ( FullEvent :: CacheReady {
198- guilds : guild_amount,
199- } ) ;
200- }
186+ if let Some ( guilds) = update_cache ! ( cache, event) {
187+ extra_event = Some ( FullEvent :: CacheReady {
188+ guilds,
189+ } ) ;
201190 }
202191
203192 FullEvent :: GuildCreate {
@@ -206,7 +195,7 @@ fn update_cache_with_event(
206195 }
207196 } ,
208197 Event :: GuildDelete ( mut event) => {
209- let full = if_cache ! ( event . update ( cache) ) ;
198+ let full = if_cache ! ( update_cache! ( cache, event ) ) ;
210199
211200 FullEvent :: GuildDelete {
212201 incomplete : event. guild ,
@@ -232,7 +221,7 @@ fn update_cache_with_event(
232221 }
233222 } ,
234223 Event :: GuildMemberRemove ( mut event) => {
235- let member = if_cache ! ( event . update ( cache) ) ;
224+ let member = if_cache ! ( update_cache! ( cache, event ) ) ;
236225
237226 FullEvent :: GuildMemberRemoval {
238227 guild_id : event. guild_id ,
@@ -241,7 +230,7 @@ fn update_cache_with_event(
241230 }
242231 } ,
243232 Event :: GuildMemberUpdate ( mut event) => {
244- let before = if_cache ! ( event . update ( cache) ) ;
233+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
245234 let after: Option < Member > = if_cache ! ( {
246235 let guild = cache. guild( event. guild_id) ;
247236 guild. and_then( |g| g. members. get( & event. user. id) . cloned( ) )
@@ -268,7 +257,7 @@ fn update_cache_with_event(
268257 }
269258 } ,
270259 Event :: GuildRoleDelete ( mut event) => {
271- let role = if_cache ! ( event . update ( cache) ) ;
260+ let role = if_cache ! ( update_cache! ( cache, event ) ) ;
272261
273262 FullEvent :: GuildRoleDelete {
274263 guild_id : event. guild_id ,
@@ -277,7 +266,7 @@ fn update_cache_with_event(
277266 }
278267 } ,
279268 Event :: GuildRoleUpdate ( mut event) => {
280- let before = if_cache ! ( event . update ( cache) ) ;
269+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
281270
282271 FullEvent :: GuildRoleUpdate {
283272 old_data_if_available : before,
@@ -324,15 +313,15 @@ fn update_cache_with_event(
324313 guild_id : event. guild_id ,
325314 } ,
326315 Event :: MessageUpdate ( mut event) => {
327- let before = if_cache ! ( event . update ( cache) ) ;
316+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
328317
329318 FullEvent :: MessageUpdate {
330319 old_if_available : before,
331320 event,
332321 }
333322 } ,
334323 Event :: PresenceUpdate ( mut event) => {
335- let old_data = if_cache ! ( event . update ( cache) ) ;
324+ let old_data = if_cache ! ( update_cache! ( cache, event ) ) ;
336325
337326 FullEvent :: PresenceUpdate {
338327 old_data,
@@ -354,19 +343,11 @@ fn update_cache_with_event(
354343 removed_reactions : event. reaction ,
355344 } ,
356345 Event :: Ready ( mut event) => {
357- update_cache ! ( cache, event) ;
358-
359346 #[ cfg( feature = "cache" ) ]
360- {
361- let mut shards = cache. shard_data . write ( ) ;
362- if shards. connected . len ( ) == shards. total . get ( ) as usize
363- && !shards. has_sent_shards_ready
364- {
365- shards. has_sent_shards_ready = true ;
366- extra_event = Some ( FullEvent :: ShardsReady {
367- total_shards : shards. total ,
368- } ) ;
369- }
347+ if let Some ( total_shards) = update_cache ! ( cache, event) {
348+ extra_event = Some ( FullEvent :: ShardsReady {
349+ total_shards,
350+ } ) ;
370351 }
371352
372353 FullEvent :: Ready {
@@ -380,7 +361,7 @@ fn update_cache_with_event(
380361 event,
381362 } ,
382363 Event :: UserUpdate ( mut event) => {
383- let before = if_cache ! ( event . update ( cache) ) ;
364+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
384365
385366 FullEvent :: UserUpdate {
386367 old_data : before,
@@ -391,7 +372,7 @@ fn update_cache_with_event(
391372 event,
392373 } ,
393374 Event :: VoiceStateUpdate ( mut event) => {
394- let before = if_cache ! ( event . update ( cache) ) ;
375+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
395376
396377 FullEvent :: VoiceStateUpdate {
397378 old : before,
@@ -445,15 +426,15 @@ fn update_cache_with_event(
445426 }
446427 } ,
447428 Event :: ThreadUpdate ( mut event) => {
448- let old = if_cache ! ( event . update ( cache) ) ;
429+ let old = if_cache ! ( update_cache! ( cache, event ) ) ;
449430
450431 FullEvent :: ThreadUpdate {
451432 old,
452433 new : event. thread ,
453434 }
454435 } ,
455436 Event :: ThreadDelete ( mut event) => {
456- let full_thread_data = if_cache ! ( event . update ( cache) ) ;
437+ let full_thread_data = if_cache ! ( update_cache! ( cache, event ) ) ;
457438
458439 FullEvent :: ThreadDelete {
459440 thread : event. thread ,
0 commit comments