diff options
| author | Zeyla Hellyer <[email protected]> | 2018-04-25 21:37:54 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2018-04-25 21:37:54 -0700 |
| commit | fd77a91f2ba7c782f3e0e67ecee19df17bb31e26 (patch) | |
| tree | 63eba0d038dd3ab22f9ad70ac188a11a5882b880 /src/model | |
| parent | Log more information about failed deserializations (diff) | |
| download | serenity-fd77a91f2ba7c782f3e0e67ecee19df17bb31e26.tar.xz serenity-fd77a91f2ba7c782f3e0e67ecee19df17bb31e26.zip | |
Fix "Guild Member Chunk" deserialization
Diffstat (limited to 'src/model')
| -rw-r--r-- | src/model/event.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/model/event.rs b/src/model/event.rs index c88a59c..04169a6 100644 --- a/src/model/event.rs +++ b/src/model/event.rs @@ -615,8 +615,17 @@ impl<'de> Deserialize<'de> for GuildMembersChunkEvent { } } - let members: HashMap<UserId, Member> = - Deserialize::deserialize(members).map_err(DeError::custom)?; + let members = serde_json::from_value::<Vec<Member>>(members) + .map(|members| members + .into_iter() + .fold(HashMap::new(), |mut acc, member| { + let id = member.user.read().id; + + acc.insert(id, member); + + acc + })) + .map_err(DeError::custom)?; Ok(GuildMembersChunkEvent { guild_id, |