From 3e864602710e6e27d8607fe12dc13e56e0a9abdb Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Tue, 5 Sep 2023 14:41:02 +0200 Subject: [PATCH] Implement UpdateMessage for GuildCreate --- src/types/events/guild.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/types/events/guild.rs b/src/types/events/guild.rs index faf713b..0c6bb05 100644 --- a/src/types/events/guild.rs +++ b/src/types/events/guild.rs @@ -16,13 +16,28 @@ use super::UpdateMessage; #[cfg(feature = "client")] use std::sync::{Arc, RwLock}; -#[derive(Debug, Deserialize, Serialize, Default, Clone)] +#[derive(Debug, Deserialize, Serialize, Default, Clone, SourceUrlField, JsonField)] /// See ; /// Received to give data about a guild; // This one is particularly painful, it can be a Guild object with an extra field or an unavailable guild object pub struct GuildCreate { #[serde(flatten)] pub d: GuildCreateDataOption, + #[serde(skip)] + pub source_url: String, + #[serde(skip)] + pub json: String, +} + +impl UpdateMessage for GuildCreate { + fn id(&self) -> Option { + match &self.d { + GuildCreateDataOption::UnavailableGuild(unavailable) => Some(unavailable.id), + GuildCreateDataOption::Guild(guild) => Some(guild.id), + } + } + + fn update(&mut self, _: Arc>) {} } #[derive(Debug, Deserialize, Serialize, Clone)]