@@ -41,6 +41,8 @@ func (c *selfUserCacheImpl) SetSelfUser(user discord.OAuth2User) {
41
41
}
42
42
43
43
type GuildCache interface {
44
+ GuildCache () Cache [discord.Guild ]
45
+
44
46
IsGuildUnready (guildID snowflake.ID ) bool
45
47
SetGuildUnready (guildID snowflake.ID , unready bool )
46
48
UnreadyGuildIDs () []snowflake.ID
@@ -70,6 +72,10 @@ type guildCacheImpl struct {
70
72
unavailableGuilds Set [snowflake.ID ]
71
73
}
72
74
75
+ func (c * guildCacheImpl ) GuildCache () Cache [discord.Guild ] {
76
+ return c .cache
77
+ }
78
+
73
79
func (c * guildCacheImpl ) IsGuildUnready (guildID snowflake.ID ) bool {
74
80
return c .unreadyGuilds .Has (guildID )
75
81
}
@@ -131,6 +137,8 @@ func (c *guildCacheImpl) RemoveGuild(guildID snowflake.ID) (discord.Guild, bool)
131
137
}
132
138
133
139
type ChannelCache interface {
140
+ ChannelCache () Cache [discord.GuildChannel ]
141
+
134
142
Channel (channelID snowflake.ID ) (discord.GuildChannel , bool )
135
143
ChannelsForEach (fn func (channel discord.GuildChannel ))
136
144
ChannelsLen () int
@@ -149,6 +157,10 @@ type channelCacheImpl struct {
149
157
cache Cache [discord.GuildChannel ]
150
158
}
151
159
160
+ func (c * channelCacheImpl ) ChannelCache () Cache [discord.GuildChannel ] {
161
+ return c .cache
162
+ }
163
+
152
164
func (c * channelCacheImpl ) Channel (channelID snowflake.ID ) (discord.GuildChannel , bool ) {
153
165
return c .cache .Get (channelID )
154
166
}
@@ -176,6 +188,8 @@ func (c *channelCacheImpl) RemoveChannelsByGuildID(guildID snowflake.ID) {
176
188
}
177
189
178
190
type StageInstanceCache interface {
191
+ StageInstanceCache () GroupedCache [discord.StageInstance ]
192
+
179
193
StageInstance (guildID snowflake.ID , stageInstanceID snowflake.ID ) (discord.StageInstance , bool )
180
194
StageInstanceForEach (guildID snowflake.ID , fn func (stageInstance discord.StageInstance ))
181
195
StageInstancesAllLen () int
@@ -195,6 +209,10 @@ type stageInstanceCacheImpl struct {
195
209
cache GroupedCache [discord.StageInstance ]
196
210
}
197
211
212
+ func (c * stageInstanceCacheImpl ) StageInstanceCache () GroupedCache [discord.StageInstance ] {
213
+ return c .cache
214
+ }
215
+
198
216
func (c * stageInstanceCacheImpl ) StageInstance (guildID snowflake.ID , stageInstanceID snowflake.ID ) (discord.StageInstance , bool ) {
199
217
return c .cache .Get (guildID , stageInstanceID )
200
218
}
@@ -226,6 +244,7 @@ func (c *stageInstanceCacheImpl) RemoveStageInstancesByGuildID(guildID snowflake
226
244
}
227
245
228
246
type GuildScheduledEventCache interface {
247
+ GuildScheduledEventCache () GroupedCache [discord.GuildScheduledEvent ]
229
248
GuildScheduledEvent (guildID snowflake.ID , guildScheduledEventID snowflake.ID ) (discord.GuildScheduledEvent , bool )
230
249
GuildScheduledEventsForEach (guildID snowflake.ID , fn func (guildScheduledEvent discord.GuildScheduledEvent ))
231
250
GuildScheduledEventsAllLen () int
@@ -245,6 +264,10 @@ type guildScheduledEventCacheImpl struct {
245
264
cache GroupedCache [discord.GuildScheduledEvent ]
246
265
}
247
266
267
+ func (c * guildScheduledEventCacheImpl ) GuildScheduledEventCache () GroupedCache [discord.GuildScheduledEvent ] {
268
+ return c .cache
269
+ }
270
+
248
271
func (c * guildScheduledEventCacheImpl ) GuildScheduledEvent (guildID snowflake.ID , guildScheduledEventID snowflake.ID ) (discord.GuildScheduledEvent , bool ) {
249
272
return c .cache .Get (guildID , guildScheduledEventID )
250
273
}
@@ -274,6 +297,8 @@ func (c *guildScheduledEventCacheImpl) RemoveGuildScheduledEventsByGuildID(guild
274
297
}
275
298
276
299
type RoleCache interface {
300
+ RoleCache () GroupedCache [discord.Role ]
301
+
277
302
Role (guildID snowflake.ID , roleID snowflake.ID ) (discord.Role , bool )
278
303
RolesForEach (guildID snowflake.ID , fn func (role discord.Role ))
279
304
RolesAllLen () int
@@ -293,6 +318,10 @@ type roleCacheImpl struct {
293
318
cache GroupedCache [discord.Role ]
294
319
}
295
320
321
+ func (c * roleCacheImpl ) RoleCache () GroupedCache [discord.Role ] {
322
+ return c .cache
323
+ }
324
+
296
325
func (c * roleCacheImpl ) Role (guildID snowflake.ID , roleID snowflake.ID ) (discord.Role , bool ) {
297
326
return c .cache .Get (guildID , roleID )
298
327
}
@@ -322,6 +351,8 @@ func (c *roleCacheImpl) RemoveRolesByGuildID(guildID snowflake.ID) {
322
351
}
323
352
324
353
type MemberCache interface {
354
+ MemberCache () GroupedCache [discord.Member ]
355
+
325
356
Member (guildID snowflake.ID , userID snowflake.ID ) (discord.Member , bool )
326
357
MembersForEach (guildID snowflake.ID , fn func (member discord.Member ))
327
358
MembersAllLen () int
@@ -341,6 +372,10 @@ type memberCacheImpl struct {
341
372
cache GroupedCache [discord.Member ]
342
373
}
343
374
375
+ func (c * memberCacheImpl ) MemberCache () GroupedCache [discord.Member ] {
376
+ return c .cache
377
+ }
378
+
344
379
func (c * memberCacheImpl ) Member (guildID snowflake.ID , userID snowflake.ID ) (discord.Member , bool ) {
345
380
return c .cache .Get (guildID , userID )
346
381
}
@@ -370,6 +405,8 @@ func (c *memberCacheImpl) RemoveMembersByGuildID(guildID snowflake.ID) {
370
405
}
371
406
372
407
type ThreadMemberCache interface {
408
+ ThreadMemberCache () GroupedCache [discord.ThreadMember ]
409
+
373
410
ThreadMember (threadID snowflake.ID , userID snowflake.ID ) (discord.ThreadMember , bool )
374
411
ThreadMemberForEach (threadID snowflake.ID , fn func (threadMember discord.ThreadMember ))
375
412
ThreadMembersAllLen () int
@@ -389,6 +426,10 @@ type threadMemberCacheImpl struct {
389
426
cache GroupedCache [discord.ThreadMember ]
390
427
}
391
428
429
+ func (c * threadMemberCacheImpl ) ThreadMemberCache () GroupedCache [discord.ThreadMember ] {
430
+ return c .cache
431
+ }
432
+
392
433
func (c * threadMemberCacheImpl ) ThreadMember (threadID snowflake.ID , userID snowflake.ID ) (discord.ThreadMember , bool ) {
393
434
return c .cache .Get (threadID , userID )
394
435
}
@@ -420,6 +461,8 @@ func (c *threadMemberCacheImpl) RemoveThreadMembersByThreadID(threadID snowflake
420
461
}
421
462
422
463
type PresenceCache interface {
464
+ PresenceCache () GroupedCache [discord.Presence ]
465
+
423
466
Presence (guildID snowflake.ID , userID snowflake.ID ) (discord.Presence , bool )
424
467
PresenceForEach (guildID snowflake.ID , fn func (presence discord.Presence ))
425
468
PresencesAllLen () int
@@ -439,6 +482,10 @@ type presenceCacheImpl struct {
439
482
cache GroupedCache [discord.Presence ]
440
483
}
441
484
485
+ func (c * presenceCacheImpl ) PresenceCache () GroupedCache [discord.Presence ] {
486
+ return c .cache
487
+ }
488
+
442
489
func (c * presenceCacheImpl ) Presence (guildID snowflake.ID , userID snowflake.ID ) (discord.Presence , bool ) {
443
490
return c .cache .Get (guildID , userID )
444
491
}
@@ -470,6 +517,8 @@ func (c *presenceCacheImpl) RemovePresencesByGuildID(guildID snowflake.ID) {
470
517
}
471
518
472
519
type VoiceStateCache interface {
520
+ VoiceStateCache () GroupedCache [discord.VoiceState ]
521
+
473
522
VoiceState (guildID snowflake.ID , userID snowflake.ID ) (discord.VoiceState , bool )
474
523
VoiceStatesForEach (guildID snowflake.ID , fn func (discord.VoiceState ))
475
524
VoiceStatesAllLen () int
@@ -489,6 +538,10 @@ type voiceStateCacheImpl struct {
489
538
cache GroupedCache [discord.VoiceState ]
490
539
}
491
540
541
+ func (c * voiceStateCacheImpl ) VoiceStateCache () GroupedCache [discord.VoiceState ] {
542
+ return c .cache
543
+ }
544
+
492
545
func (c * voiceStateCacheImpl ) VoiceState (guildID snowflake.ID , userID snowflake.ID ) (discord.VoiceState , bool ) {
493
546
return c .cache .Get (guildID , userID )
494
547
}
@@ -518,6 +571,8 @@ func (c *voiceStateCacheImpl) RemoveVoiceStatesByGuildID(guildID snowflake.ID) {
518
571
}
519
572
520
573
type MessageCache interface {
574
+ MessageCache () GroupedCache [discord.Message ]
575
+
521
576
Message (channelID snowflake.ID , messageID snowflake.ID ) (discord.Message , bool )
522
577
MessagesForEach (channelID snowflake.ID , fn func (message discord.Message ))
523
578
MessagesAllLen () int
@@ -538,6 +593,10 @@ type messageCacheImpl struct {
538
593
cache GroupedCache [discord.Message ]
539
594
}
540
595
596
+ func (c * messageCacheImpl ) MessageCache () GroupedCache [discord.Message ] {
597
+ return c .cache
598
+ }
599
+
541
600
func (c * messageCacheImpl ) Message (channelID snowflake.ID , messageID snowflake.ID ) (discord.Message , bool ) {
542
601
return c .cache .Get (channelID , messageID )
543
602
}
@@ -573,6 +632,8 @@ func (c *messageCacheImpl) RemoveMessagesByGuildID(guildID snowflake.ID) {
573
632
}
574
633
575
634
type EmojiCache interface {
635
+ EmojiCache () GroupedCache [discord.Emoji ]
636
+
576
637
Emoji (guildID snowflake.ID , emojiID snowflake.ID ) (discord.Emoji , bool )
577
638
EmojisForEach (guildID snowflake.ID , fn func (emoji discord.Emoji ))
578
639
EmojisAllLen () int
@@ -592,6 +653,10 @@ type emojiCacheImpl struct {
592
653
cache GroupedCache [discord.Emoji ]
593
654
}
594
655
656
+ func (c * emojiCacheImpl ) EmojiCache () GroupedCache [discord.Emoji ] {
657
+ return c .cache
658
+ }
659
+
595
660
func (c * emojiCacheImpl ) Emoji (guildID snowflake.ID , emojiID snowflake.ID ) (discord.Emoji , bool ) {
596
661
return c .cache .Get (guildID , emojiID )
597
662
}
@@ -621,6 +686,8 @@ func (c *emojiCacheImpl) RemoveEmojisByGuildID(guildID snowflake.ID) {
621
686
}
622
687
623
688
type StickerCache interface {
689
+ StickerCache () GroupedCache [discord.Sticker ]
690
+
624
691
Sticker (guildID snowflake.ID , stickerID snowflake.ID ) (discord.Sticker , bool )
625
692
StickersForEach (guildID snowflake.ID , fn func (sticker discord.Sticker ))
626
693
StickersAllLen () int
@@ -640,6 +707,10 @@ type stickerCacheImpl struct {
640
707
cache GroupedCache [discord.Sticker ]
641
708
}
642
709
710
+ func (c * stickerCacheImpl ) StickerCache () GroupedCache [discord.Sticker ] {
711
+ return c .cache
712
+ }
713
+
643
714
func (c * stickerCacheImpl ) Sticker (guildID snowflake.ID , stickerID snowflake.ID ) (discord.Sticker , bool ) {
644
715
return c .cache .Get (guildID , stickerID )
645
716
}
@@ -760,38 +831,55 @@ func New(opts ...ConfigOpt) Caches {
760
831
761
832
return & cachesImpl {
762
833
config : * config ,
763
- SelfUserCache : config .SelfUserCache ,
764
- GuildCache : config .GuildCache ,
765
- ChannelCache : config .ChannelCache ,
766
- StageInstanceCache : config .StageInstanceCache ,
767
- GuildScheduledEventCache : config .GuildScheduledEventCache ,
768
- RoleCache : config .RoleCache ,
769
- MemberCache : config .MemberCache ,
770
- ThreadMemberCache : config .ThreadMemberCache ,
771
- PresenceCache : config .PresenceCache ,
772
- VoiceStateCache : config .VoiceStateCache ,
773
- MessageCache : config .MessageCache ,
774
- EmojiCache : config .EmojiCache ,
775
- StickerCache : config .StickerCache ,
834
+ selfUserCache : config .SelfUserCache ,
835
+ guildCache : config .GuildCache ,
836
+ channelCache : config .ChannelCache ,
837
+ stageInstanceCache : config .StageInstanceCache ,
838
+ guildScheduledEventCache : config .GuildScheduledEventCache ,
839
+ roleCache : config .RoleCache ,
840
+ memberCache : config .MemberCache ,
841
+ threadMemberCache : config .ThreadMemberCache ,
842
+ presenceCache : config .PresenceCache ,
843
+ voiceStateCache : config .VoiceStateCache ,
844
+ messageCache : config .MessageCache ,
845
+ emojiCache : config .EmojiCache ,
846
+ stickerCache : config .StickerCache ,
776
847
}
777
848
}
778
849
850
+ // these type aliases are needed to allow having the GuildCache, ChannelCache, etc. as methods on the cachesImpl struct
851
+ type (
852
+ guildCache = GuildCache
853
+ channelCache = ChannelCache
854
+ stageInstanceCache = StageInstanceCache
855
+ guildScheduledEventCache = GuildScheduledEventCache
856
+ roleCache = RoleCache
857
+ memberCache = MemberCache
858
+ threadMemberCache = ThreadMemberCache
859
+ presenceCache = PresenceCache
860
+ voiceStateCache = VoiceStateCache
861
+ messageCache = MessageCache
862
+ emojiCache = EmojiCache
863
+ stickerCache = StickerCache
864
+ selfUserCache = SelfUserCache
865
+ )
866
+
779
867
type cachesImpl struct {
780
868
config Config
781
869
782
- GuildCache
783
- ChannelCache
784
- StageInstanceCache
785
- GuildScheduledEventCache
786
- RoleCache
787
- MemberCache
788
- ThreadMemberCache
789
- PresenceCache
790
- VoiceStateCache
791
- MessageCache
792
- EmojiCache
793
- StickerCache
794
- SelfUserCache
870
+ guildCache
871
+ channelCache
872
+ stageInstanceCache
873
+ guildScheduledEventCache
874
+ roleCache
875
+ memberCache
876
+ threadMemberCache
877
+ presenceCache
878
+ voiceStateCache
879
+ messageCache
880
+ emojiCache
881
+ stickerCache
882
+ selfUserCache
795
883
}
796
884
797
885
func (c * cachesImpl ) CacheFlags () Flags {
0 commit comments