diff options
| author | Zeyla Hellyer <[email protected]> | 2017-12-17 21:43:29 -0800 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2017-12-17 21:46:30 -0800 |
| commit | e36cf9bdc7d213a0004c065160e989550391a6c1 (patch) | |
| tree | e04a20594c36fb0af12307ab212310fc82bbe363 /src | |
| parent | Fix typo (#235) (diff) | |
| download | serenity-e36cf9bdc7d213a0004c065160e989550391a6c1.tar.xz serenity-e36cf9bdc7d213a0004c065160e989550391a6c1.zip | |
Default serde on a couple Ready structfields
Have serde default on the `presences` and `private_channels`
structfields of `Ready`. Some JSON serializers might leave these out
when serializing if they're empty, so resolve this by simply defaulting
to empty maps.
Diffstat (limited to 'src')
| -rw-r--r-- | src/model/gateway.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/model/gateway.rs b/src/model/gateway.rs index 6a3e24d..27a541b 100644 --- a/src/model/gateway.rs +++ b/src/model/gateway.rs @@ -286,13 +286,15 @@ impl<'de> Deserialize<'de> for Presence { #[derive(Clone, Debug, Deserialize)] pub struct Ready { pub guilds: Vec<GuildStatus>, - #[serde(deserialize_with = "deserialize_presences")] pub presences: HashMap<UserId, Presence>, - #[serde(deserialize_with = "deserialize_private_channels")] - pub private_channels: - HashMap<ChannelId, Channel>, + #[serde(default, deserialize_with = "deserialize_presences")] + pub presences: HashMap<UserId, Presence>, + #[serde(default, deserialize_with = "deserialize_private_channels")] + pub private_channels: HashMap<ChannelId, Channel>, pub session_id: String, pub shard: Option<[u64; 2]>, - #[serde(default, rename = "_trace")] pub trace: Vec<String>, + #[serde(default, rename = "_trace")] + pub trace: Vec<String>, pub user: CurrentUser, - #[serde(rename = "v")] pub version: u64, + #[serde(rename = "v")] + pub version: u64, } |