1#![allow(clippy::wildcard_imports)]
2
3pub mod gateway;
4
5mod dispatch;
6mod kind;
7
8pub use self::{
9 dispatch::{DispatchEvent, DispatchEventWithTypeDeserializer},
10 gateway::{GatewayEvent, GatewayEventDeserializer},
11 kind::EventType,
12};
13
14use super::{CloseFrame, payload::incoming::*};
15use crate::gateway::payload::incoming::rate_limited::RateLimitMetadata;
16use crate::id::{Id, marker::GuildMarker};
17use std::error::Error;
18use std::fmt::{Debug, Display, Formatter, Result as FmtResult};
19
20#[derive(Clone, Debug, PartialEq)]
27pub enum Event {
28 AutoModerationActionExecution(AutoModerationActionExecution),
30 AutoModerationRuleCreate(AutoModerationRuleCreate),
32 AutoModerationRuleDelete(AutoModerationRuleDelete),
34 AutoModerationRuleUpdate(AutoModerationRuleUpdate),
36 BanAdd(BanAdd),
38 BanRemove(BanRemove),
40 ChannelCreate(Box<ChannelCreate>),
42 ChannelDelete(Box<ChannelDelete>),
44 ChannelPinsUpdate(ChannelPinsUpdate),
46 ChannelUpdate(Box<ChannelUpdate>),
48 CommandPermissionsUpdate(CommandPermissionsUpdate),
50 EntitlementCreate(EntitlementCreate),
52 EntitlementDelete(EntitlementDelete),
54 EntitlementUpdate(EntitlementUpdate),
60 GatewayClose(Option<CloseFrame<'static>>),
63 GatewayHeartbeat,
65 GatewayHeartbeatAck,
67 GatewayHello(Hello),
69 GatewayInvalidateSession(bool),
73 GatewayReconnect,
75 GuildAuditLogEntryCreate(Box<GuildAuditLogEntryCreate>),
77 GuildCreate(Box<GuildCreate>),
79 GuildDelete(GuildDelete),
81 GuildEmojisUpdate(GuildEmojisUpdate),
83 GuildIntegrationsUpdate(GuildIntegrationsUpdate),
85 GuildScheduledEventCreate(Box<GuildScheduledEventCreate>),
87 GuildScheduledEventDelete(Box<GuildScheduledEventDelete>),
89 GuildScheduledEventUpdate(Box<GuildScheduledEventUpdate>),
91 GuildScheduledEventUserAdd(GuildScheduledEventUserAdd),
93 GuildScheduledEventUserRemove(GuildScheduledEventUserRemove),
95 GuildStickersUpdate(GuildStickersUpdate),
97 GuildUpdate(Box<GuildUpdate>),
99 IntegrationCreate(Box<IntegrationCreate>),
101 IntegrationDelete(IntegrationDelete),
103 IntegrationUpdate(Box<IntegrationUpdate>),
105 InteractionCreate(Box<InteractionCreate>),
107 InviteCreate(Box<InviteCreate>),
109 InviteDelete(InviteDelete),
111 MemberAdd(Box<MemberAdd>),
113 MemberRemove(MemberRemove),
115 MemberUpdate(Box<MemberUpdate>),
117 MemberChunk(MemberChunk),
119 MessageCreate(Box<MessageCreate>),
121 MessageDelete(MessageDelete),
123 MessageDeleteBulk(MessageDeleteBulk),
125 MessagePollVoteAdd(MessagePollVoteAdd),
127 MessagePollVoteRemove(MessagePollVoteRemove),
129 MessageUpdate(Box<MessageUpdate>),
131 PresenceUpdate(Box<PresenceUpdate>),
133 RateLimited(RateLimited),
135 ReactionAdd(Box<ReactionAdd>),
137 ReactionRemove(Box<ReactionRemove>),
139 ReactionRemoveAll(ReactionRemoveAll),
141 ReactionRemoveEmoji(ReactionRemoveEmoji),
144 Ready(Ready),
146 Resumed,
148 RoleCreate(RoleCreate),
150 RoleDelete(RoleDelete),
152 RoleUpdate(RoleUpdate),
154 StageInstanceCreate(StageInstanceCreate),
156 StageInstanceDelete(StageInstanceDelete),
158 StageInstanceUpdate(StageInstanceUpdate),
160 SubscriptionCreate(SubscriptionCreate),
162 SubscriptionDelete(SubscriptionDelete),
164 SubscriptionUpdate(SubscriptionUpdate),
166 ThreadCreate(Box<ThreadCreate>),
169 ThreadDelete(ThreadDelete),
171 ThreadListSync(ThreadListSync),
173 ThreadMemberUpdate(Box<ThreadMemberUpdate>),
175 ThreadMembersUpdate(ThreadMembersUpdate),
177 ThreadUpdate(Box<ThreadUpdate>),
179 TypingStart(Box<TypingStart>),
181 UnavailableGuild(UnavailableGuild),
183 UserUpdate(UserUpdate),
185 VoiceServerUpdate(VoiceServerUpdate),
187 VoiceStateUpdate(Box<VoiceStateUpdate>),
189 WebhooksUpdate(WebhooksUpdate),
191}
192
193impl Event {
194 pub const fn guild_id(&self) -> Option<Id<GuildMarker>> {
196 match self {
197 Event::AutoModerationActionExecution(e) => Some(e.guild_id),
198 Event::AutoModerationRuleCreate(e) => Some(e.0.guild_id),
199 Event::AutoModerationRuleDelete(e) => Some(e.0.guild_id),
200 Event::AutoModerationRuleUpdate(e) => Some(e.0.guild_id),
201 Event::BanAdd(e) => Some(e.guild_id),
202 Event::BanRemove(e) => Some(e.guild_id),
203 Event::ChannelCreate(e) => e.0.guild_id,
204 Event::ChannelDelete(e) => e.0.guild_id,
205 Event::ChannelPinsUpdate(e) => e.guild_id,
206 Event::ChannelUpdate(e) => e.0.guild_id,
207 Event::CommandPermissionsUpdate(e) => Some(e.0.guild_id),
208 Event::GuildAuditLogEntryCreate(e) => e.0.guild_id,
209 Event::GuildCreate(e) => Some(e.id()),
210 Event::GuildDelete(e) => Some(e.id),
211 Event::GuildEmojisUpdate(e) => Some(e.guild_id),
212 Event::GuildIntegrationsUpdate(e) => Some(e.guild_id),
213 Event::GuildScheduledEventCreate(e) => Some(e.0.guild_id),
214 Event::GuildScheduledEventDelete(e) => Some(e.0.guild_id),
215 Event::GuildScheduledEventUpdate(e) => Some(e.0.guild_id),
216 Event::GuildScheduledEventUserAdd(e) => Some(e.guild_id),
217 Event::GuildScheduledEventUserRemove(e) => Some(e.guild_id),
218 Event::GuildStickersUpdate(e) => Some(e.guild_id),
219 Event::GuildUpdate(e) => Some(e.0.id),
220 Event::IntegrationCreate(e) => e.0.guild_id,
221 Event::IntegrationDelete(e) => Some(e.guild_id),
222 Event::IntegrationUpdate(e) => e.0.guild_id,
223 Event::InteractionCreate(e) => e.0.guild_id,
224 Event::InviteCreate(e) => Some(e.guild_id),
225 Event::InviteDelete(e) => Some(e.guild_id),
226 Event::MemberAdd(e) => Some(e.guild_id),
227 Event::MemberChunk(e) => Some(e.guild_id),
228 Event::MemberRemove(e) => Some(e.guild_id),
229 Event::MemberUpdate(e) => Some(e.guild_id),
230 Event::MessageCreate(e) => e.message.guild_id,
231 Event::MessageDelete(e) => e.guild_id,
232 Event::MessageDeleteBulk(e) => e.guild_id,
233 Event::MessageUpdate(e) => e.0.guild_id,
234 Event::MessagePollVoteAdd(e) => e.guild_id,
235 Event::MessagePollVoteRemove(e) => e.guild_id,
236 Event::PresenceUpdate(e) => Some(e.0.guild_id),
237 Event::RateLimited(RateLimited {
238 meta: RateLimitMetadata::RequestGuildMembers { guild_id, .. },
239 ..
240 }) => Some(*guild_id),
241 Event::ReactionAdd(e) => e.0.guild_id,
242 Event::ReactionRemove(e) => e.0.guild_id,
243 Event::ReactionRemoveAll(e) => e.guild_id,
244 Event::ReactionRemoveEmoji(e) => Some(e.guild_id),
245 Event::RoleCreate(e) => Some(e.guild_id),
246 Event::RoleDelete(e) => Some(e.guild_id),
247 Event::RoleUpdate(e) => Some(e.guild_id),
248 Event::StageInstanceCreate(e) => Some(e.0.guild_id),
249 Event::StageInstanceDelete(e) => Some(e.0.guild_id),
250 Event::StageInstanceUpdate(e) => Some(e.0.guild_id),
251 Event::ThreadCreate(e) => e.0.guild_id,
252 Event::ThreadDelete(e) => Some(e.guild_id),
253 Event::ThreadListSync(e) => Some(e.guild_id),
254 Event::ThreadMemberUpdate(e) => Some(e.guild_id),
255 Event::ThreadMembersUpdate(e) => Some(e.guild_id),
256 Event::ThreadUpdate(e) => e.0.guild_id,
257 Event::TypingStart(e) => e.guild_id,
258 Event::UnavailableGuild(e) => Some(e.id),
259 Event::VoiceServerUpdate(e) => Some(e.guild_id),
260 Event::VoiceStateUpdate(e) => e.0.guild_id,
261 Event::WebhooksUpdate(e) => Some(e.guild_id),
262 Event::GatewayClose(_)
263 | Event::EntitlementCreate(_)
264 | Event::EntitlementDelete(_)
265 | Event::EntitlementUpdate(_)
266 | Event::GatewayHeartbeat
267 | Event::GatewayHeartbeatAck
268 | Event::GatewayHello(_)
269 | Event::GatewayInvalidateSession(_)
270 | Event::GatewayReconnect
271 | Event::Ready(_)
272 | Event::Resumed
273 | Event::SubscriptionCreate(_)
274 | Event::SubscriptionDelete(_)
275 | Event::SubscriptionUpdate(_)
276 | Event::UserUpdate(_) => None,
277 }
278 }
279
280 pub const fn kind(&self) -> EventType {
281 match self {
282 Self::AutoModerationActionExecution(_) => EventType::AutoModerationActionExecution,
283 Self::AutoModerationRuleCreate(_) => EventType::AutoModerationRuleCreate,
284 Self::AutoModerationRuleDelete(_) => EventType::AutoModerationRuleDelete,
285 Self::AutoModerationRuleUpdate(_) => EventType::AutoModerationRuleUpdate,
286 Self::BanAdd(_) => EventType::BanAdd,
287 Self::BanRemove(_) => EventType::BanRemove,
288 Self::ChannelCreate(_) => EventType::ChannelCreate,
289 Self::ChannelDelete(_) => EventType::ChannelDelete,
290 Self::ChannelPinsUpdate(_) => EventType::ChannelPinsUpdate,
291 Self::ChannelUpdate(_) => EventType::ChannelUpdate,
292 Self::CommandPermissionsUpdate(_) => EventType::CommandPermissionsUpdate,
293 Self::EntitlementCreate(_) => EventType::EntitlementCreate,
294 Self::EntitlementDelete(_) => EventType::EntitlementDelete,
295 Self::EntitlementUpdate(_) => EventType::EntitlementUpdate,
296 Self::GatewayClose(_) => EventType::GatewayClose,
297 Self::GatewayHeartbeat => EventType::GatewayHeartbeat,
298 Self::GatewayHeartbeatAck => EventType::GatewayHeartbeatAck,
299 Self::GatewayHello(_) => EventType::GatewayHello,
300 Self::GatewayInvalidateSession(_) => EventType::GatewayInvalidateSession,
301 Self::GatewayReconnect => EventType::GatewayReconnect,
302 Self::GuildAuditLogEntryCreate(_) => EventType::GuildAuditLogEntryCreate,
303 Self::GuildCreate(_) => EventType::GuildCreate,
304 Self::GuildDelete(_) => EventType::GuildDelete,
305 Self::GuildEmojisUpdate(_) => EventType::GuildEmojisUpdate,
306 Self::GuildIntegrationsUpdate(_) => EventType::GuildIntegrationsUpdate,
307 Self::GuildScheduledEventCreate(_) => EventType::GuildScheduledEventCreate,
308 Self::GuildScheduledEventDelete(_) => EventType::GuildScheduledEventDelete,
309 Self::GuildScheduledEventUpdate(_) => EventType::GuildScheduledEventUpdate,
310 Self::GuildScheduledEventUserAdd(_) => EventType::GuildScheduledEventUserAdd,
311 Self::GuildScheduledEventUserRemove(_) => EventType::GuildScheduledEventUserRemove,
312 Self::GuildStickersUpdate(_) => EventType::GuildStickersUpdate,
313 Self::GuildUpdate(_) => EventType::GuildUpdate,
314 Self::IntegrationCreate(_) => EventType::IntegrationCreate,
315 Self::IntegrationDelete(_) => EventType::IntegrationDelete,
316 Self::IntegrationUpdate(_) => EventType::IntegrationUpdate,
317 Self::InteractionCreate(_) => EventType::InteractionCreate,
318 Self::InviteCreate(_) => EventType::InviteCreate,
319 Self::InviteDelete(_) => EventType::InviteDelete,
320 Self::MemberAdd(_) => EventType::MemberAdd,
321 Self::MemberRemove(_) => EventType::MemberRemove,
322 Self::MemberUpdate(_) => EventType::MemberUpdate,
323 Self::MemberChunk(_) => EventType::MemberChunk,
324 Self::MessageCreate(_) => EventType::MessageCreate,
325 Self::MessageDelete(_) => EventType::MessageDelete,
326 Self::MessageDeleteBulk(_) => EventType::MessageDeleteBulk,
327 Self::MessagePollVoteAdd(_) => EventType::MessagePollVoteAdd,
328 Self::MessagePollVoteRemove(_) => EventType::MessagePollVoteRemove,
329 Self::MessageUpdate(_) => EventType::MessageUpdate,
330 Self::PresenceUpdate(_) => EventType::PresenceUpdate,
331 Self::RateLimited(_) => EventType::RateLimited,
332 Self::ReactionAdd(_) => EventType::ReactionAdd,
333 Self::ReactionRemove(_) => EventType::ReactionRemove,
334 Self::ReactionRemoveAll(_) => EventType::ReactionRemoveAll,
335 Self::ReactionRemoveEmoji(_) => EventType::ReactionRemoveEmoji,
336 Self::Ready(_) => EventType::Ready,
337 Self::Resumed => EventType::Resumed,
338 Self::RoleCreate(_) => EventType::RoleCreate,
339 Self::RoleDelete(_) => EventType::RoleDelete,
340 Self::RoleUpdate(_) => EventType::RoleUpdate,
341 Self::StageInstanceCreate(_) => EventType::StageInstanceCreate,
342 Self::StageInstanceDelete(_) => EventType::StageInstanceDelete,
343 Self::StageInstanceUpdate(_) => EventType::StageInstanceUpdate,
344 Self::SubscriptionCreate(_) => EventType::SubscriptionCreate,
345 Self::SubscriptionDelete(_) => EventType::SubscriptionDelete,
346 Self::SubscriptionUpdate(_) => EventType::SubscriptionUpdate,
347 Self::ThreadCreate(_) => EventType::ThreadCreate,
348 Self::ThreadDelete(_) => EventType::ThreadDelete,
349 Self::ThreadListSync(_) => EventType::ThreadListSync,
350 Self::ThreadMemberUpdate(_) => EventType::ThreadMemberUpdate,
351 Self::ThreadMembersUpdate(_) => EventType::ThreadMembersUpdate,
352 Self::ThreadUpdate(_) => EventType::ThreadUpdate,
353 Self::TypingStart(_) => EventType::TypingStart,
354 Self::UnavailableGuild(_) => EventType::UnavailableGuild,
355 Self::UserUpdate(_) => EventType::UserUpdate,
356 Self::VoiceServerUpdate(_) => EventType::VoiceServerUpdate,
357 Self::VoiceStateUpdate(_) => EventType::VoiceStateUpdate,
358 Self::WebhooksUpdate(_) => EventType::WebhooksUpdate,
359 }
360 }
361}
362
363impl From<DispatchEvent> for Event {
364 fn from(event: DispatchEvent) -> Self {
365 match event {
366 DispatchEvent::AutoModerationActionExecution(v) => {
367 Self::AutoModerationActionExecution(v)
368 }
369 DispatchEvent::AutoModerationRuleCreate(v) => Self::AutoModerationRuleCreate(v),
370 DispatchEvent::AutoModerationRuleDelete(v) => Self::AutoModerationRuleDelete(v),
371 DispatchEvent::AutoModerationRuleUpdate(v) => Self::AutoModerationRuleUpdate(v),
372 DispatchEvent::BanAdd(v) => Self::BanAdd(v),
373 DispatchEvent::BanRemove(v) => Self::BanRemove(v),
374 DispatchEvent::ChannelCreate(v) => Self::ChannelCreate(v),
375 DispatchEvent::ChannelDelete(v) => Self::ChannelDelete(v),
376 DispatchEvent::ChannelPinsUpdate(v) => Self::ChannelPinsUpdate(v),
377 DispatchEvent::ChannelUpdate(v) => Self::ChannelUpdate(v),
378 DispatchEvent::CommandPermissionsUpdate(v) => Self::CommandPermissionsUpdate(v),
379 DispatchEvent::EntitlementCreate(v) => Self::EntitlementCreate(v),
380 DispatchEvent::EntitlementDelete(v) => Self::EntitlementDelete(v),
381 DispatchEvent::EntitlementUpdate(v) => Self::EntitlementUpdate(v),
382 DispatchEvent::GuildAuditLogEntryCreate(v) => Self::GuildAuditLogEntryCreate(v),
383 DispatchEvent::GuildCreate(v) => Self::GuildCreate(v),
384 DispatchEvent::GuildDelete(v) => Self::GuildDelete(v),
385 DispatchEvent::GuildEmojisUpdate(v) => Self::GuildEmojisUpdate(v),
386 DispatchEvent::GuildIntegrationsUpdate(v) => Self::GuildIntegrationsUpdate(v),
387 DispatchEvent::GuildScheduledEventCreate(v) => Self::GuildScheduledEventCreate(v),
388 DispatchEvent::GuildScheduledEventDelete(v) => Self::GuildScheduledEventDelete(v),
389 DispatchEvent::GuildScheduledEventUpdate(v) => Self::GuildScheduledEventUpdate(v),
390 DispatchEvent::GuildScheduledEventUserAdd(v) => Self::GuildScheduledEventUserAdd(v),
391 DispatchEvent::GuildScheduledEventUserRemove(v) => {
392 Self::GuildScheduledEventUserRemove(v)
393 }
394 DispatchEvent::GuildStickersUpdate(v) => Self::GuildStickersUpdate(v),
395 DispatchEvent::GuildUpdate(v) => Self::GuildUpdate(v),
396 DispatchEvent::IntegrationCreate(v) => Self::IntegrationCreate(v),
397 DispatchEvent::IntegrationDelete(v) => Self::IntegrationDelete(v),
398 DispatchEvent::IntegrationUpdate(v) => Self::IntegrationUpdate(v),
399 DispatchEvent::InteractionCreate(v) => Self::InteractionCreate(v),
400 DispatchEvent::InviteCreate(v) => Self::InviteCreate(v),
401 DispatchEvent::InviteDelete(v) => Self::InviteDelete(v),
402 DispatchEvent::MemberAdd(v) => Self::MemberAdd(v),
403 DispatchEvent::MemberRemove(v) => Self::MemberRemove(v),
404 DispatchEvent::MemberUpdate(v) => Self::MemberUpdate(v),
405 DispatchEvent::MemberChunk(v) => Self::MemberChunk(v),
406 DispatchEvent::RoleCreate(v) => Self::RoleCreate(v),
407 DispatchEvent::RoleDelete(v) => Self::RoleDelete(v),
408 DispatchEvent::RoleUpdate(v) => Self::RoleUpdate(v),
409 DispatchEvent::MessageCreate(v) => Self::MessageCreate(v),
410 DispatchEvent::MessageDelete(v) => Self::MessageDelete(v),
411 DispatchEvent::MessageDeleteBulk(v) => Self::MessageDeleteBulk(v),
412 DispatchEvent::MessagePollVoteAdd(v) => Self::MessagePollVoteAdd(v),
413 DispatchEvent::MessagePollVoteRemove(v) => Self::MessagePollVoteRemove(v),
414 DispatchEvent::MessageUpdate(v) => Self::MessageUpdate(v),
415 DispatchEvent::PresenceUpdate(v) => Self::PresenceUpdate(v),
416 DispatchEvent::RateLimited(v) => Self::RateLimited(v),
417 DispatchEvent::ReactionAdd(v) => Self::ReactionAdd(v),
418 DispatchEvent::ReactionRemove(v) => Self::ReactionRemove(v),
419 DispatchEvent::ReactionRemoveAll(v) => Self::ReactionRemoveAll(v),
420 DispatchEvent::ReactionRemoveEmoji(v) => Self::ReactionRemoveEmoji(v),
421 DispatchEvent::Ready(v) => Self::Ready(v),
422 DispatchEvent::Resumed => Self::Resumed,
423 DispatchEvent::StageInstanceCreate(v) => Self::StageInstanceCreate(v),
424 DispatchEvent::StageInstanceDelete(v) => Self::StageInstanceDelete(v),
425 DispatchEvent::StageInstanceUpdate(v) => Self::StageInstanceUpdate(v),
426 DispatchEvent::SubscriptionCreate(v) => Self::SubscriptionCreate(v),
427 DispatchEvent::SubscriptionDelete(v) => Self::SubscriptionDelete(v),
428 DispatchEvent::SubscriptionUpdate(v) => Self::SubscriptionUpdate(v),
429 DispatchEvent::ThreadCreate(v) => Self::ThreadCreate(v),
430 DispatchEvent::ThreadDelete(v) => Self::ThreadDelete(v),
431 DispatchEvent::ThreadListSync(v) => Self::ThreadListSync(v),
432 DispatchEvent::ThreadMemberUpdate(v) => Self::ThreadMemberUpdate(v),
433 DispatchEvent::ThreadMembersUpdate(v) => Self::ThreadMembersUpdate(v),
434 DispatchEvent::ThreadUpdate(v) => Self::ThreadUpdate(v),
435 DispatchEvent::TypingStart(v) => Self::TypingStart(v),
436 DispatchEvent::UnavailableGuild(v) => Self::UnavailableGuild(v),
437 DispatchEvent::UserUpdate(v) => Self::UserUpdate(v),
438 DispatchEvent::VoiceServerUpdate(v) => Self::VoiceServerUpdate(v),
439 DispatchEvent::VoiceStateUpdate(v) => Self::VoiceStateUpdate(v),
440 DispatchEvent::WebhooksUpdate(v) => Self::WebhooksUpdate(v),
441 }
442 }
443}
444
445impl From<GatewayEvent> for Event {
446 fn from(event: GatewayEvent) -> Self {
447 match event {
448 GatewayEvent::Dispatch(_, e) => Self::from(e),
449 GatewayEvent::Heartbeat => Self::GatewayHeartbeat,
450 GatewayEvent::HeartbeatAck => Self::GatewayHeartbeatAck,
451 GatewayEvent::Hello(interval) => Self::GatewayHello(interval),
452 GatewayEvent::InvalidateSession(r) => Self::GatewayInvalidateSession(r),
453 GatewayEvent::Reconnect => Self::GatewayReconnect,
454 }
455 }
456}
457
458#[derive(Debug)]
460pub struct EventConversionError {
461 event: Event,
462}
463
464impl EventConversionError {
465 pub const fn new(event: Event) -> EventConversionError {
466 Self { event }
467 }
468
469 pub const fn event_ref(&self) -> &Event {
471 &self.event
472 }
473
474 #[allow(clippy::missing_const_for_fn)]
476 pub fn into_event(self) -> Event {
477 self.event
478 }
479}
480
481impl Display for EventConversionError {
482 fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult {
483 f.write_str("event variant failed to convert")
484 }
485}
486
487impl Error for EventConversionError {}
488
489#[cfg(test)]
490mod tests {
491 use super::{super::payload::incoming::*, Event};
506 use static_assertions::const_assert;
507 use std::mem;
508
509 #[allow(dead_code)]
513 const EVENT_THRESHOLD: usize = 312;
514
515 const_assert!(mem::size_of::<Event>() == EVENT_THRESHOLD);
516
517 const_assert!(mem::size_of::<ChannelCreate>() > EVENT_THRESHOLD);
519 const_assert!(mem::size_of::<ChannelDelete>() > EVENT_THRESHOLD);
520 const_assert!(mem::size_of::<ChannelUpdate>() > EVENT_THRESHOLD);
521 const_assert!(mem::size_of::<GuildScheduledEventCreate>() > EVENT_THRESHOLD);
522 const_assert!(mem::size_of::<GuildScheduledEventDelete>() > EVENT_THRESHOLD);
523 const_assert!(mem::size_of::<GuildScheduledEventUpdate>() > EVENT_THRESHOLD);
524 const_assert!(mem::size_of::<GuildUpdate>() > EVENT_THRESHOLD);
525 const_assert!(mem::size_of::<IntegrationCreate>() > EVENT_THRESHOLD);
526 const_assert!(mem::size_of::<IntegrationUpdate>() > EVENT_THRESHOLD);
527 const_assert!(mem::size_of::<InviteCreate>() > EVENT_THRESHOLD);
528 const_assert!(mem::size_of::<InteractionCreate>() > EVENT_THRESHOLD);
529 const_assert!(mem::size_of::<MemberAdd>() > EVENT_THRESHOLD);
530 const_assert!(mem::size_of::<MemberUpdate>() > EVENT_THRESHOLD);
531 const_assert!(mem::size_of::<MessageCreate>() > EVENT_THRESHOLD);
532 const_assert!(mem::size_of::<MessageUpdate>() > EVENT_THRESHOLD);
533 const_assert!(mem::size_of::<PresenceUpdate>() > EVENT_THRESHOLD);
534 const_assert!(mem::size_of::<ReactionAdd>() > EVENT_THRESHOLD);
535 const_assert!(mem::size_of::<ReactionRemove>() > EVENT_THRESHOLD);
536 const_assert!(mem::size_of::<ThreadCreate>() > EVENT_THRESHOLD);
537 const_assert!(mem::size_of::<ThreadMemberUpdate>() > EVENT_THRESHOLD);
538 const_assert!(mem::size_of::<ThreadUpdate>() > EVENT_THRESHOLD);
539 const_assert!(mem::size_of::<TypingStart>() > EVENT_THRESHOLD);
540
541 const_assert!(mem::size_of::<AutoModerationRuleCreate>() <= EVENT_THRESHOLD);
543 const_assert!(mem::size_of::<AutoModerationRuleDelete>() <= EVENT_THRESHOLD);
544 const_assert!(mem::size_of::<AutoModerationRuleUpdate>() <= EVENT_THRESHOLD);
545 const_assert!(mem::size_of::<AutoModerationActionExecution>() <= EVENT_THRESHOLD);
546 const_assert!(mem::size_of::<BanAdd>() <= EVENT_THRESHOLD);
547 const_assert!(mem::size_of::<BanRemove>() <= EVENT_THRESHOLD);
548 const_assert!(mem::size_of::<ChannelPinsUpdate>() <= EVENT_THRESHOLD);
549 const_assert!(mem::size_of::<CommandPermissionsUpdate>() <= EVENT_THRESHOLD);
550 const_assert!(mem::size_of::<GuildDelete>() <= EVENT_THRESHOLD);
551 const_assert!(mem::size_of::<GuildEmojisUpdate>() <= EVENT_THRESHOLD);
552 const_assert!(mem::size_of::<GuildIntegrationsUpdate>() <= EVENT_THRESHOLD);
553 const_assert!(mem::size_of::<GuildScheduledEventUserAdd>() <= EVENT_THRESHOLD);
554 const_assert!(mem::size_of::<GuildScheduledEventUserRemove>() <= EVENT_THRESHOLD);
555 const_assert!(mem::size_of::<IntegrationDelete>() <= EVENT_THRESHOLD);
556 const_assert!(mem::size_of::<InviteDelete>() <= EVENT_THRESHOLD);
557 const_assert!(mem::size_of::<MemberChunk>() <= EVENT_THRESHOLD);
558 const_assert!(mem::size_of::<MessageDelete>() <= EVENT_THRESHOLD);
559 const_assert!(mem::size_of::<MessageDeleteBulk>() <= EVENT_THRESHOLD);
560 const_assert!(mem::size_of::<MemberRemove>() <= EVENT_THRESHOLD);
561 const_assert!(mem::size_of::<RateLimited>() <= EVENT_THRESHOLD);
562 const_assert!(mem::size_of::<Ready>() <= EVENT_THRESHOLD);
563 const_assert!(mem::size_of::<ReactionRemoveAll>() <= EVENT_THRESHOLD);
564 const_assert!(mem::size_of::<RoleCreate>() <= EVENT_THRESHOLD);
565 const_assert!(mem::size_of::<RoleDelete>() <= EVENT_THRESHOLD);
566 const_assert!(mem::size_of::<RoleUpdate>() <= EVENT_THRESHOLD);
567 const_assert!(mem::size_of::<StageInstanceCreate>() <= EVENT_THRESHOLD);
568 const_assert!(mem::size_of::<StageInstanceDelete>() <= EVENT_THRESHOLD);
569 const_assert!(mem::size_of::<StageInstanceUpdate>() <= EVENT_THRESHOLD);
570 const_assert!(mem::size_of::<ThreadDelete>() <= EVENT_THRESHOLD);
571 const_assert!(mem::size_of::<ThreadListSync>() <= EVENT_THRESHOLD);
572 const_assert!(mem::size_of::<ThreadMembersUpdate>() <= EVENT_THRESHOLD);
573 const_assert!(mem::size_of::<UnavailableGuild>() <= EVENT_THRESHOLD);
574 const_assert!(mem::size_of::<UserUpdate>() <= EVENT_THRESHOLD);
575 const_assert!(mem::size_of::<VoiceServerUpdate>() <= EVENT_THRESHOLD);
576 const_assert!(mem::size_of::<WebhooksUpdate>() <= EVENT_THRESHOLD);
577 const_assert!(mem::size_of::<MessagePollVoteAdd>() <= EVENT_THRESHOLD);
578 const_assert!(mem::size_of::<MessagePollVoteRemove>() <= EVENT_THRESHOLD);
579}