From 224b3159a659f215180b8d4a8b0cf8e704b1ad74 Mon Sep 17 00:00:00 2001 From: kozabrada123 <“kozabrada123@users.noreply.github.com”> Date: Sat, 27 May 2023 13:05:36 +0200 Subject: [PATCH] Fix some deserialization errors --- src/types/entities/guild.rs | 10 +++++----- src/types/entities/user.rs | 8 ++++---- src/types/events/presence.rs | 4 ++-- src/types/events/ready.rs | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/types/entities/guild.rs b/src/types/entities/guild.rs index 197915e..adafb4b 100644 --- a/src/types/entities/guild.rs +++ b/src/types/entities/guild.rs @@ -12,7 +12,7 @@ use crate::types::{ #[derive(Serialize, Deserialize, Debug, Default, Clone)] pub struct Guild { pub id: Snowflake, - pub name: String, + pub name: Option, pub icon: Option, pub icon_hash: Option, pub splash: Option, @@ -30,7 +30,7 @@ pub struct Guild { pub explicit_content_filter: Option, pub roles: Vec, pub emojis: Vec, - pub features: Vec, + pub features: Option>, pub application_id: Option, pub system_channel_id: Option, pub system_channel_flags: Option, @@ -53,8 +53,8 @@ pub struct Guild { pub member_count: Option, pub presence_count: Option, pub welcome_screen: Option, - pub nsfw_level: u8, - pub nsfw: bool, + pub nsfw_level: Option, + pub nsfw: Option, pub stickers: Option>, pub premium_progress_bar_enabled: Option, pub joined_at: String, @@ -70,7 +70,7 @@ pub struct Guild { pub webhooks: Option>, pub mfa_level: Option, pub region: Option, - pub unavailable: bool, + pub unavailable: Option, pub parent: Option, } diff --git a/src/types/entities/user.rs b/src/types/entities/user.rs index 944f514..bcd8171 100644 --- a/src/types/entities/user.rs +++ b/src/types/entities/user.rs @@ -29,7 +29,7 @@ pub struct User { username: String, discriminator: String, avatar: Option, - bot: bool, + bot: Option, system: Option, mfa_enabled: Option, accent_color: Option, @@ -52,11 +52,11 @@ pub struct User { nsfw_allowed: bool, premium: bool, purchased_flags: i32, - premium_usage_flags: i32, + premium_usage_flags: Option, disabled: Option, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] pub struct PublicUser { pub id: Snowflake, pub username: String, @@ -66,7 +66,7 @@ pub struct PublicUser { pub banner: Option, pub theme_colors: Option>, pub pronouns: Option, - pub bot: bool, + pub bot: Option, pub bio: String, pub premium_type: u8, pub premium_since: Option>, diff --git a/src/types/events/presence.rs b/src/types/events/presence.rs index 01e40af..65c86e5 100644 --- a/src/types/events/presence.rs +++ b/src/types/events/presence.rs @@ -1,4 +1,4 @@ -use crate::types::entities::User; +use crate::types::PublicUser; use crate::types::events::WebSocketEvent; use crate::types::interfaces::Activity; use serde::{Deserialize, Serialize}; @@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Deserialize, Serialize, Default, Clone)] /// See https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields pub struct PresenceUpdate { - pub user: User, + pub user: PublicUser, pub guild_id: Option, pub status: String, pub activities: Vec, diff --git a/src/types/events/ready.rs b/src/types/events/ready.rs index bdc8043..b82839e 100644 --- a/src/types/events/ready.rs +++ b/src/types/events/ready.rs @@ -71,7 +71,7 @@ pub struct MergedPresenceGuild { #[derive(Debug, Deserialize, Serialize, Default)] pub struct SupplimentalGuild { - pub voice_states: Vec, + pub voice_states: Option>, pub id: String, pub embedded_activities: Vec }