Fix some deserialization errors

This commit is contained in:
kozabrada123 2023-05-27 13:05:36 +02:00
parent 6932e567b7
commit 0fd800c4c2
4 changed files with 12 additions and 12 deletions

View File

@ -12,7 +12,7 @@ use crate::types::{
#[derive(Serialize, Deserialize, Debug, Default, Clone)] #[derive(Serialize, Deserialize, Debug, Default, Clone)]
pub struct Guild { pub struct Guild {
pub id: Snowflake, pub id: Snowflake,
pub name: String, pub name: Option<String>,
pub icon: Option<String>, pub icon: Option<String>,
pub icon_hash: Option<String>, pub icon_hash: Option<String>,
pub splash: Option<String>, pub splash: Option<String>,
@ -30,7 +30,7 @@ pub struct Guild {
pub explicit_content_filter: Option<u8>, pub explicit_content_filter: Option<u8>,
pub roles: Vec<RoleObject>, pub roles: Vec<RoleObject>,
pub emojis: Vec<Emoji>, pub emojis: Vec<Emoji>,
pub features: Vec<String>, pub features: Option<Vec<String>>,
pub application_id: Option<String>, pub application_id: Option<String>,
pub system_channel_id: Option<Snowflake>, pub system_channel_id: Option<Snowflake>,
pub system_channel_flags: Option<u8>, pub system_channel_flags: Option<u8>,
@ -53,8 +53,8 @@ pub struct Guild {
pub member_count: Option<u64>, pub member_count: Option<u64>,
pub presence_count: Option<u64>, pub presence_count: Option<u64>,
pub welcome_screen: Option<WelcomeScreenObject>, pub welcome_screen: Option<WelcomeScreenObject>,
pub nsfw_level: u8, pub nsfw_level: Option<u8>,
pub nsfw: bool, pub nsfw: Option<bool>,
pub stickers: Option<Vec<Sticker>>, pub stickers: Option<Vec<Sticker>>,
pub premium_progress_bar_enabled: Option<bool>, pub premium_progress_bar_enabled: Option<bool>,
pub joined_at: String, pub joined_at: String,
@ -70,7 +70,7 @@ pub struct Guild {
pub webhooks: Option<Vec<Webhook>>, pub webhooks: Option<Vec<Webhook>>,
pub mfa_level: Option<u8>, pub mfa_level: Option<u8>,
pub region: Option<String>, pub region: Option<String>,
pub unavailable: bool, pub unavailable: Option<bool>,
pub parent: Option<String>, pub parent: Option<String>,
} }

View File

@ -29,7 +29,7 @@ pub struct User {
username: String, username: String,
discriminator: String, discriminator: String,
avatar: Option<String>, avatar: Option<String>,
bot: bool, bot: Option<bool>,
system: Option<bool>, system: Option<bool>,
mfa_enabled: Option<bool>, mfa_enabled: Option<bool>,
accent_color: Option<u8>, accent_color: Option<u8>,
@ -52,11 +52,11 @@ pub struct User {
nsfw_allowed: bool, nsfw_allowed: bool,
premium: bool, premium: bool,
purchased_flags: i32, purchased_flags: i32,
premium_usage_flags: i32, premium_usage_flags: Option<i32>,
disabled: Option<bool>, disabled: Option<bool>,
} }
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct PublicUser { pub struct PublicUser {
pub id: Snowflake, pub id: Snowflake,
pub username: String, pub username: String,
@ -66,7 +66,7 @@ pub struct PublicUser {
pub banner: Option<String>, pub banner: Option<String>,
pub theme_colors: Option<Vec<u8>>, pub theme_colors: Option<Vec<u8>>,
pub pronouns: Option<String>, pub pronouns: Option<String>,
pub bot: bool, pub bot: Option<bool>,
pub bio: String, pub bio: String,
pub premium_type: u8, pub premium_type: u8,
pub premium_since: Option<DateTime<Utc>>, pub premium_since: Option<DateTime<Utc>>,

View File

@ -1,4 +1,4 @@
use crate::types::entities::User; use crate::types::PublicUser;
use crate::types::events::WebSocketEvent; use crate::types::events::WebSocketEvent;
use crate::types::interfaces::Activity; use crate::types::interfaces::Activity;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Default, Clone)] #[derive(Debug, Deserialize, Serialize, Default, Clone)]
/// See https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields /// See https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields
pub struct PresenceUpdate { pub struct PresenceUpdate {
pub user: User, pub user: PublicUser,
pub guild_id: Option<String>, pub guild_id: Option<String>,
pub status: String, pub status: String,
pub activities: Vec<Activity>, pub activities: Vec<Activity>,

View File

@ -71,7 +71,7 @@ pub struct MergedPresenceGuild {
#[derive(Debug, Deserialize, Serialize, Default)] #[derive(Debug, Deserialize, Serialize, Default)]
pub struct SupplimentalGuild { pub struct SupplimentalGuild {
pub voice_states: Vec<VoiceState>, pub voice_states: Option<Vec<VoiceState>>,
pub id: String, pub id: String,
pub embedded_activities: Vec<serde_json::Value> pub embedded_activities: Vec<serde_json::Value>
} }