aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdelyn Breedlove <[email protected]>2019-12-09 17:35:34 -0700
committerAdelyn Breedlove <[email protected]>2019-12-09 17:35:34 -0700
commit2029b8a7df42c3621f78390f5eebf4d7523295e0 (patch)
treec4c030b1b63b4c062ac4d43508617869465fd29d /src
parentPatch auditlog deserialize to allow unknown fields (diff)
downloadserenity-2029b8a7df42c3621f78390f5eebf4d7523295e0.tar.xz
serenity-2029b8a7df42c3621f78390f5eebf4d7523295e0.zip
Add handling for integration auditlog entryHEADmaster
Diffstat (limited to 'src')
-rw-r--r--src/model/guild/audit_log.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/model/guild/audit_log.rs b/src/model/guild/audit_log.rs
index 0d25574..0a6a883 100644
--- a/src/model/guild/audit_log.rs
+++ b/src/model/guild/audit_log.rs
@@ -435,7 +435,7 @@ impl<'de> Deserialize<'de> for AuditLogs {
#[serde(rename = "audit_log_entries")] Entries,
#[serde(rename = "webhooks")] Webhooks,
#[serde(rename = "users")] Users,
- // TODO(field added by Discord, undocumented) #[serde(rename = "integrations")] Integrations,
+ #[serde(rename = "integrations")] Integrations,
}
struct EntriesVisitor;
@@ -451,6 +451,7 @@ impl<'de> Deserialize<'de> for AuditLogs {
let mut audit_log_entries = None;
let mut users = None;
let mut webhooks = None;
+ let mut integrations = None;
loop {
match map.next_key() {
@@ -475,6 +476,13 @@ impl<'de> Deserialize<'de> for AuditLogs {
users = Some(map.next_value::<Vec<User>>()?);
},
+ Ok(Some(Field::Integrations)) => {
+ if integrations.is_some() {
+ return Err(de::Error::duplicate_field("integrations"));
+ }
+
+ integrations = Some(map.next_value::<Vec<Integration>>()?);
+ },
Ok(None) => break, // No more keys
Err(e) => if e.description().contains("unknown field") {
// e is of type <V as MapAccess>::Error, which is a macro-defined trait, ultimately