aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-12-21 22:27:13 -0800
committerAustin Hellyer <[email protected]>2016-12-22 07:34:53 -0800
commitdb0a1b37145234fca5be6bae598ddbe539e4b04f (patch)
tree4d668c82795d1a749da1102b02ec1de15311399c /src/model
parentAbstract event decoders to associated functions (diff)
downloadserenity-db0a1b37145234fca5be6bae598ddbe539e4b04f.tar.xz
serenity-db0a1b37145234fca5be6bae598ddbe539e4b04f.zip
Simplify event decoding
Diffstat (limited to 'src/model')
-rw-r--r--src/model/event.rs124
1 files changed, 62 insertions, 62 deletions
diff --git a/src/model/event.rs b/src/model/event.rs
index b27e74e..ff93286 100644
--- a/src/model/event.rs
+++ b/src/model/event.rs
@@ -1050,116 +1050,116 @@ impl Event {
let mut value = into_map(value)?;
- if kind == "CALL_CREATE" {
- Ok(Event::CallCreate(CallCreateEvent::decode(value)?))
+ Ok(if kind == "CALL_CREATE" {
+ Event::CallCreate(CallCreateEvent::decode(value)?)
} else if kind == "CALL_DELETE" {
- Ok(Event::CallDelete(CallDeleteEvent::decode(value)?))
+ Event::CallDelete(CallDeleteEvent::decode(value)?)
} else if kind == "CALL_UPDATE" {
- Ok(Event::CallUpdate(CallUpdateEvent::decode(value)?))
+ Event::CallUpdate(CallUpdateEvent::decode(value)?)
} else if kind == "CHANNEL_CREATE" {
- Ok(Event::ChannelCreate(ChannelCreateEvent::decode(value)?))
+ Event::ChannelCreate(ChannelCreateEvent::decode(value)?)
} else if kind == "CHANNEL_DELETE" {
- Ok(Event::ChannelDelete(ChannelDeleteEvent::decode(value)?))
+ Event::ChannelDelete(ChannelDeleteEvent::decode(value)?)
} else if kind == "CHANNEL_PINS_ACK" {
- Ok(Event::ChannelPinsAck(ChannelPinsAckEvent::decode(value)?))
+ Event::ChannelPinsAck(ChannelPinsAckEvent::decode(value)?)
} else if kind == "CHANNEL_PINS_UPDATE" {
- Ok(Event::ChannelPinsUpdate(ChannelPinsUpdateEvent::decode(value)?))
+ Event::ChannelPinsUpdate(ChannelPinsUpdateEvent::decode(value)?)
} else if kind == "CHANNEL_RECIPIENT_ADD" {
- Ok(Event::ChannelRecipientAdd(ChannelRecipientAddEvent::decode(value)?))
+ Event::ChannelRecipientAdd(ChannelRecipientAddEvent::decode(value)?)
} else if kind == "CHANNEL_RECIPIENT_REMOVE" {
- Ok(Event::ChannelRecipientRemove(ChannelRecipientRemoveEvent::decode(value)?))
+ Event::ChannelRecipientRemove(ChannelRecipientRemoveEvent::decode(value)?)
} else if kind == "CHANNEL_UPDATE" {
- Ok(Event::ChannelUpdate(ChannelUpdateEvent::decode(value)?))
+ Event::ChannelUpdate(ChannelUpdateEvent::decode(value)?)
} else if kind == "FRIEND_SUGGESTION_CREATE" {
- Ok(Event::FriendSuggestionCreate(FriendSuggestionCreateEvent::decode(value)?))
+ Event::FriendSuggestionCreate(FriendSuggestionCreateEvent::decode(value)?)
} else if kind == "FRIEND_SUGGESTION_DELETE" {
- Ok(Event::FriendSuggestionDelete(FriendSuggestionDeleteEvent::decode(value)?))
+ Event::FriendSuggestionDelete(FriendSuggestionDeleteEvent::decode(value)?)
} else if kind == "GUILD_BAN_ADD" {
- Ok(Event::GuildBanAdd(GuildBanAddEvent::decode(value)?))
+ Event::GuildBanAdd(GuildBanAddEvent::decode(value)?)
} else if kind == "GUILD_BAN_REMOVE" {
- Ok(Event::GuildBanRemove(GuildBanRemoveEvent::decode(value)?))
+ Event::GuildBanRemove(GuildBanRemoveEvent::decode(value)?)
} else if kind == "GUILD_CREATE" {
- Ok(if remove(&mut value, "unavailable").ok().and_then(|v| v.as_bool()).unwrap_or(false) {
+ if remove(&mut value, "unavailable").ok().and_then(|v| v.as_bool()).unwrap_or(false) {
Event::GuildUnavailable(GuildUnavailableEvent::decode(value)?)
} else {
Event::GuildCreate(GuildCreateEvent::decode(value)?)
- })
+ }
} else if kind == "GUILD_DELETE" {
- Ok(if remove(&mut value, "unavailable").ok().and_then(|v| v.as_bool()).unwrap_or(false) {
+ if remove(&mut value, "unavailable").ok().and_then(|v| v.as_bool()).unwrap_or(false) {
Event::GuildUnavailable(GuildUnavailableEvent::decode(value)?)
} else {
Event::GuildDelete(GuildDeleteEvent::decode(value)?)
- })
+ }
} else if kind == "GUILD_EMOJIS_UPDATE" {
- Ok(Event::GuildEmojisUpdate(GuildEmojisUpdateEvent::decode(value)?))
+ Event::GuildEmojisUpdate(GuildEmojisUpdateEvent::decode(value)?)
} else if kind == "GUILD_INTEGRATIONS_UPDATE" {
- Ok(Event::GuildIntegrationsUpdate(GuildIntegrationsUpdateEvent::decode(value)?))
+ Event::GuildIntegrationsUpdate(GuildIntegrationsUpdateEvent::decode(value)?)
} else if kind == "GUILD_MEMBER_ADD" {
- Ok(Event::GuildMemberAdd(GuildMemberAddEvent::decode(value)?))
+ Event::GuildMemberAdd(GuildMemberAddEvent::decode(value)?)
} else if kind == "GUILD_MEMBER_REMOVE" {
- Ok(Event::GuildMemberRemove(GuildMemberRemoveEvent::decode(value)?))
+ Event::GuildMemberRemove(GuildMemberRemoveEvent::decode(value)?)
} else if kind == "GUILD_MEMBER_UPDATE" {
- Ok(Event::GuildMemberUpdate(GuildMemberUpdateEvent::decode(value)?))
+ Event::GuildMemberUpdate(GuildMemberUpdateEvent::decode(value)?)
} else if kind == "GUILD_MEMBERS_CHUNK" {
- Ok(Event::GuildMembersChunk(GuildMembersChunkEvent::decode(value)?))
+ Event::GuildMembersChunk(GuildMembersChunkEvent::decode(value)?)
} else if kind == "GUILD_ROLE_CREATE" {
- Ok(Event::GuildRoleCreate(GuildRoleCreateEvent::decode(value)?))
+ Event::GuildRoleCreate(GuildRoleCreateEvent::decode(value)?)
} else if kind == "GUILD_ROLE_DELETE" {
- Ok(Event::GuildRoleDelete(GuildRoleDeleteEvent::decode(value)?))
+ Event::GuildRoleDelete(GuildRoleDeleteEvent::decode(value)?)
} else if kind == "GUILD_ROLE_UPDATE" {
- Ok(Event::GuildRoleUpdate(GuildRoleUpdateEvent::decode(value)?))
+ Event::GuildRoleUpdate(GuildRoleUpdateEvent::decode(value)?)
} else if kind == "GUILD_SYNC" {
- Ok(Event::GuildSync(GuildSyncEvent::decode(value)?))
+ Event::GuildSync(GuildSyncEvent::decode(value)?)
} else if kind == "GUILD_UPDATE" {
- Ok(Event::GuildUpdate(GuildUpdateEvent::decode(value)?))
+ Event::GuildUpdate(GuildUpdateEvent::decode(value)?)
} else if kind == "MESSAGE_ACK" {
- Ok(Event::MessageAck(MessageAckEvent::decode(value)?))
+ Event::MessageAck(MessageAckEvent::decode(value)?)
} else if kind == "MESSAGE_CREATE" {
- Ok(Event::MessageCreate(MessageCreateEvent::decode(value)?))
+ Event::MessageCreate(MessageCreateEvent::decode(value)?)
} else if kind == "MESSAGE_DELETE" {
- Ok(Event::MessageDelete(MessageDeleteEvent::decode(value)?))
+ Event::MessageDelete(MessageDeleteEvent::decode(value)?)
} else if kind == "MESSAGE_DELETE_BULK" {
- Ok(Event::MessageDeleteBulk(MessageDeleteBulkEvent::decode(value)?))
+ Event::MessageDeleteBulk(MessageDeleteBulkEvent::decode(value)?)
} else if kind == "MESSAGE_REACTION_ADD" {
- Ok(Event::ReactionAdd(ReactionAddEvent::decode(value)?))
+ Event::ReactionAdd(ReactionAddEvent::decode(value)?)
} else if kind == "MESSAGE_REACTION_REMOVE" {
- Ok(Event::ReactionRemove(ReactionRemoveEvent::decode(value)?))
+ Event::ReactionRemove(ReactionRemoveEvent::decode(value)?)
} else if kind == "MESSAGE_REACTION_REMOVE_ALL" {
- Ok(Event::ReactionRemoveAll(ReactionRemoveAllEvent::decode(value)?))
+ Event::ReactionRemoveAll(ReactionRemoveAllEvent::decode(value)?)
} else if kind == "MESSAGE_UPDATE" {
- Ok(Event::MessageUpdate(MessageUpdateEvent::decode(value)?))
+ Event::MessageUpdate(MessageUpdateEvent::decode(value)?)
} else if kind == "PRESENCE_UPDATE" {
- Ok(Event::PresenceUpdate(PresenceUpdateEvent::decode(value)?))
+ Event::PresenceUpdate(PresenceUpdateEvent::decode(value)?)
} else if kind == "RELATIONSHIP_ADD" {
- Ok(Event::RelationshipAdd(RelationshipAddEvent::decode(value)?))
+ Event::RelationshipAdd(RelationshipAddEvent::decode(value)?)
} else if kind == "RELATIONSHIP_REMOVE" {
- Ok(Event::RelationshipRemove(RelationshipRemoveEvent::decode(value)?))
+ Event::RelationshipRemove(RelationshipRemoveEvent::decode(value)?)
} else if kind == "READY" {
- Ok(Event::Ready(ReadyEvent::decode(value)?))
+ Event::Ready(ReadyEvent::decode(value)?)
} else if kind == "RESUMED" {
- Ok(Event::Resumed(ResumedEvent::decode(value)?))
+ Event::Resumed(ResumedEvent::decode(value)?)
} else if kind == "TYPING_START" {
- Ok(Event::TypingStart(TypingStartEvent::decode(value)?))
+ Event::TypingStart(TypingStartEvent::decode(value)?)
} else if kind == "USER_GUILD_SETTINGS_UPDATE" {
- Ok(Event::UserGuildSettingsUpdate(UserGuildSettingsUpdateEvent::decode(value)?))
+ Event::UserGuildSettingsUpdate(UserGuildSettingsUpdateEvent::decode(value)?)
} else if kind == "USER_NOTE_UPDATE" {
- Ok(Event::UserNoteUpdate(UserNoteUpdateEvent::decode(value)?))
+ Event::UserNoteUpdate(UserNoteUpdateEvent::decode(value)?)
} else if kind == "USER_SETTINGS_UPDATE" {
- Ok(Event::UserSettingsUpdate(UserSettingsUpdateEvent::decode(value)?))
+ Event::UserSettingsUpdate(UserSettingsUpdateEvent::decode(value)?)
} else if kind == "USER_UPDATE" {
- Ok(Event::UserUpdate(UserUpdateEvent::decode(value)?))
+ Event::UserUpdate(UserUpdateEvent::decode(value)?)
} else if kind == "VOICE_SERVER_UPDATE" {
- Ok(Event::VoiceServerUpdate(VoiceServerUpdateEvent::decode(value)?))
+ Event::VoiceServerUpdate(VoiceServerUpdateEvent::decode(value)?)
} else if kind == "VOICE_STATE_UPDATE" {
- Ok(Event::VoiceStateUpdate(VoiceStateUpdateEvent::decode(value)?))
+ Event::VoiceStateUpdate(VoiceStateUpdateEvent::decode(value)?)
} else if kind == "WEBHOOKS_UPDATE" {
- Ok(Event::WebhookUpdate(WebhookUpdateEvent::decode(value)?))
+ Event::WebhookUpdate(WebhookUpdateEvent::decode(value)?)
} else {
- Ok(Event::Unknown(UnknownEvent {
+ Event::Unknown(UnknownEvent {
kind: kind,
value: value,
- }))
- }
+ })
+ })
}
}
@@ -1260,13 +1260,13 @@ impl VoiceEvent {
let opcode = VoiceOpCode::from_num(op)
.ok_or(Error::Client(ClientError::InvalidOpCode))?;
- match opcode {
- VoiceOpCode::Heartbeat => Ok(VoiceEvent::Heartbeat(VoiceHeartbeat::decode(map)?)),
- VoiceOpCode::Hello => Ok(VoiceEvent::Hello(VoiceHello::decode(map)?)),
- VoiceOpCode::KeepAlive => Ok(VoiceEvent::KeepAlive),
- VoiceOpCode::SessionDescription => Ok(VoiceEvent::Ready(VoiceSessionDescription::decode(map)?)),
- VoiceOpCode::Speaking => Ok(VoiceEvent::Speaking(VoiceSpeaking::decode(map)?)),
- other => Ok(VoiceEvent::Unknown(other, Value::Object(map))),
- }
+ Ok(match opcode {
+ VoiceOpCode::Heartbeat => VoiceEvent::Heartbeat(VoiceHeartbeat::decode(map)?),
+ VoiceOpCode::Hello => VoiceEvent::Hello(VoiceHello::decode(map)?),
+ VoiceOpCode::KeepAlive => VoiceEvent::KeepAlive,
+ VoiceOpCode::SessionDescription => VoiceEvent::Ready(VoiceSessionDescription::decode(map)?),
+ VoiceOpCode::Speaking => VoiceEvent::Speaking(VoiceSpeaking::decode(map)?),
+ other => VoiceEvent::Unknown(other, Value::Object(map)),
+ })
}
}