@@ -10,8 +10,6 @@ use crate::internal::prelude::*;
10
10
use crate :: model:: channel:: ChannelType ;
11
11
use crate :: model:: event:: Event ;
12
12
use crate :: model:: guild:: Member ;
13
- #[ cfg( feature = "cache" ) ]
14
- use crate :: model:: id:: GuildId ;
15
13
16
14
#[ cfg( feature = "cache" ) ]
17
15
macro_rules! if_cache {
@@ -121,7 +119,7 @@ fn update_cache_with_event(
121
119
}
122
120
} ,
123
121
Event :: ChannelDelete ( mut event) => {
124
- let cached_messages = if_cache ! ( event . update ( cache) ) ;
122
+ let cached_messages = if_cache ! ( update_cache! ( cache, event ) ) ;
125
123
126
124
let channel = event. channel ;
127
125
if channel. kind == ChannelType :: Category {
@@ -139,7 +137,7 @@ fn update_cache_with_event(
139
137
pin : event,
140
138
} ,
141
139
Event :: ChannelUpdate ( mut event) => {
142
- let old_channel = if_cache ! ( event . update ( cache) ) ;
140
+ let old_channel = if_cache ! ( update_cache! ( cache, event ) ) ;
143
141
144
142
FullEvent :: ChannelUpdate {
145
143
old : old_channel,
@@ -159,22 +157,13 @@ fn update_cache_with_event(
159
157
unbanned_user : event. user ,
160
158
} ,
161
159
Event :: GuildCreate ( mut event) => {
162
- let is_new = if_cache ! ( Some ( !cache. unavailable_guilds. contains( & event. guild. id) ) ) ;
163
-
164
- update_cache ! ( cache, event) ;
160
+ let is_new = if_cache ! ( Some ( !cache. unavailable_guilds( ) . contains( & event. guild. id) ) ) ;
165
161
166
162
#[ cfg( feature = "cache" ) ]
167
- {
168
- if cache. unavailable_guilds . len ( ) == 0 {
169
- cache. unavailable_guilds . shrink_to_fit ( ) ;
170
-
171
- let guild_amount =
172
- cache. guilds . iter ( ) . map ( |i| * i. key ( ) ) . collect :: < Vec < GuildId > > ( ) ;
173
-
174
- extra_event = Some ( FullEvent :: CacheReady {
175
- guilds : guild_amount,
176
- } ) ;
177
- }
163
+ if let Some ( guilds) = update_cache ! ( cache, event) {
164
+ extra_event = Some ( FullEvent :: CacheReady {
165
+ guilds,
166
+ } ) ;
178
167
}
179
168
180
169
FullEvent :: GuildCreate {
@@ -183,7 +172,7 @@ fn update_cache_with_event(
183
172
}
184
173
} ,
185
174
Event :: GuildDelete ( mut event) => {
186
- let full = if_cache ! ( event . update ( cache) ) ;
175
+ let full = if_cache ! ( update_cache! ( cache, event ) ) ;
187
176
188
177
FullEvent :: GuildDelete {
189
178
incomplete : event. guild ,
@@ -209,7 +198,7 @@ fn update_cache_with_event(
209
198
}
210
199
} ,
211
200
Event :: GuildMemberRemove ( mut event) => {
212
- let member = if_cache ! ( event . update ( cache) ) ;
201
+ let member = if_cache ! ( update_cache! ( cache, event ) ) ;
213
202
214
203
FullEvent :: GuildMemberRemoval {
215
204
guild_id : event. guild_id ,
@@ -218,7 +207,7 @@ fn update_cache_with_event(
218
207
}
219
208
} ,
220
209
Event :: GuildMemberUpdate ( mut event) => {
221
- let before = if_cache ! ( event . update ( cache) ) ;
210
+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
222
211
let after: Option < Member > = if_cache ! ( {
223
212
let guild = cache. guild( event. guild_id) ;
224
213
guild. and_then( |g| g. members. get( & event. user. id) . cloned( ) )
@@ -245,7 +234,7 @@ fn update_cache_with_event(
245
234
}
246
235
} ,
247
236
Event :: GuildRoleDelete ( mut event) => {
248
- let role = if_cache ! ( event . update ( cache) ) ;
237
+ let role = if_cache ! ( update_cache! ( cache, event ) ) ;
249
238
250
239
FullEvent :: GuildRoleDelete {
251
240
guild_id : event. guild_id ,
@@ -254,7 +243,7 @@ fn update_cache_with_event(
254
243
}
255
244
} ,
256
245
Event :: GuildRoleUpdate ( mut event) => {
257
- let before = if_cache ! ( event . update ( cache) ) ;
246
+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
258
247
259
248
FullEvent :: GuildRoleUpdate {
260
249
old_data_if_available : before,
@@ -301,7 +290,7 @@ fn update_cache_with_event(
301
290
guild_id : event. guild_id ,
302
291
} ,
303
292
Event :: MessageUpdate ( mut event) => {
304
- let before = if_cache ! ( event . update ( cache) ) ;
293
+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
305
294
let after = if_cache ! ( cache. message( event. channel_id, event. id) . map( |m| m. clone( ) ) ) ;
306
295
307
296
FullEvent :: MessageUpdate {
@@ -311,7 +300,7 @@ fn update_cache_with_event(
311
300
}
312
301
} ,
313
302
Event :: PresenceUpdate ( mut event) => {
314
- let old_data = if_cache ! ( event . update ( cache) ) ;
303
+ let old_data = if_cache ! ( update_cache! ( cache, event ) ) ;
315
304
316
305
FullEvent :: PresenceUpdate {
317
306
old_data,
@@ -333,19 +322,11 @@ fn update_cache_with_event(
333
322
removed_reactions : event. reaction ,
334
323
} ,
335
324
Event :: Ready ( mut event) => {
336
- update_cache ! ( cache, event) ;
337
-
338
325
#[ cfg( feature = "cache" ) ]
339
- {
340
- let mut shards = cache. shard_data . write ( ) ;
341
- if shards. connected . len ( ) == shards. total . get ( ) as usize
342
- && !shards. has_sent_shards_ready
343
- {
344
- shards. has_sent_shards_ready = true ;
345
- extra_event = Some ( FullEvent :: ShardsReady {
346
- total_shards : shards. total ,
347
- } ) ;
348
- }
326
+ if let Some ( total_shards) = update_cache ! ( cache, event) {
327
+ extra_event = Some ( FullEvent :: ShardsReady {
328
+ total_shards,
329
+ } ) ;
349
330
}
350
331
351
332
FullEvent :: Ready {
@@ -359,7 +340,7 @@ fn update_cache_with_event(
359
340
event,
360
341
} ,
361
342
Event :: UserUpdate ( mut event) => {
362
- let before = if_cache ! ( event . update ( cache) ) ;
343
+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
363
344
364
345
FullEvent :: UserUpdate {
365
346
old_data : before,
@@ -370,7 +351,7 @@ fn update_cache_with_event(
370
351
event,
371
352
} ,
372
353
Event :: VoiceStateUpdate ( mut event) => {
373
- let before = if_cache ! ( event . update ( cache) ) ;
354
+ let before = if_cache ! ( update_cache! ( cache, event ) ) ;
374
355
375
356
FullEvent :: VoiceStateUpdate {
376
357
old : before,
@@ -423,15 +404,15 @@ fn update_cache_with_event(
423
404
}
424
405
} ,
425
406
Event :: ThreadUpdate ( mut event) => {
426
- let old = if_cache ! ( event . update ( cache) ) ;
407
+ let old = if_cache ! ( update_cache! ( cache, event ) ) ;
427
408
428
409
FullEvent :: ThreadUpdate {
429
410
old,
430
411
new : event. thread ,
431
412
}
432
413
} ,
433
414
Event :: ThreadDelete ( mut event) => {
434
- let full_thread_data = if_cache ! ( event . update ( cache) ) ;
415
+ let full_thread_data = if_cache ! ( update_cache! ( cache, event ) ) ;
435
416
436
417
FullEvent :: ThreadDelete {
437
418
thread : event. thread ,
0 commit comments