From e962ccd59cdd09821cd7d6c89fc5601841e21104 Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Mon, 19 Aug 2024 17:20:27 +0200 Subject: [PATCH] Lots of sqlx-postgres type changes --- src/api/channels/messages.rs | 2 +- src/types/entities/application.rs | 6 ++++-- src/types/entities/attachment.rs | 5 ++++- src/types/entities/audit_log.rs | 3 ++- src/types/entities/auto_moderation.rs | 29 +++++++++++++++++++++------ src/types/entities/channel.rs | 3 ++- src/types/entities/emoji.rs | 3 --- src/types/entities/guild.rs | 27 ++++++++++++++++--------- src/types/entities/integration.rs | 6 ++++++ src/types/entities/invite.rs | 14 ++++++++++++- src/types/entities/message.rs | 17 ++++++++++++++-- src/types/entities/relationship.rs | 3 ++- src/types/entities/role.rs | 10 ++++++++- src/types/entities/stage_instance.rs | 7 +++++-- src/types/entities/sticker.rs | 6 ++++-- src/types/entities/team.rs | 3 +++ src/types/entities/user.rs | 12 +++++++++++ src/types/entities/user_settings.rs | 15 ++++++++++++++ src/types/entities/webhook.rs | 3 ++- 19 files changed, 140 insertions(+), 34 deletions(-) diff --git a/src/api/channels/messages.rs b/src/api/channels/messages.rs index feabc37..7b4aa46 100644 --- a/src/api/channels/messages.rs +++ b/src/api/channels/messages.rs @@ -40,7 +40,7 @@ impl Message { chorus_request.deserialize_response::(user).await } else { for (index, attachment) in message.attachments.iter_mut().enumerate() { - attachment.get_mut(index).unwrap().id = Some(index as i16); + attachment.get_mut(index).unwrap().id = Some((index as u64).into()); } let mut form = reqwest::multipart::Form::new(); let payload_json = to_string(&message).unwrap(); diff --git a/src/types/entities/application.rs b/src/types/entities/application.rs index 9c81c19..908568b 100644 --- a/src/types/entities/application.rs +++ b/src/types/entities/application.rs @@ -224,7 +224,8 @@ pub struct ApplicationCommandOptionChoice { #[derive(Debug, Clone, Copy, Serialize_repr, Deserialize_repr, PartialEq, Eq, Hash)] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(i32)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] /// # Reference /// See pub enum ApplicationCommandOptionType { @@ -294,7 +295,8 @@ pub struct ApplicationCommandPermission { Ord, )] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] /// See pub enum ApplicationCommandPermissionType { #[default] diff --git a/src/types/entities/attachment.rs b/src/types/entities/attachment.rs index 223dae2..6ca17b6 100644 --- a/src/types/entities/attachment.rs +++ b/src/types/entities/attachment.rs @@ -48,7 +48,10 @@ pub struct Attachment { #[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] pub struct PartialDiscordFileAttachment { - pub id: Option, + #[cfg(not(feature = "sqlx"))] + pub id: Option, + #[cfg(feature = "sqlx")] + pub id: Option, pub filename: String, /// Max 1024 characters pub description: Option, diff --git a/src/types/entities/audit_log.rs b/src/types/entities/audit_log.rs index d8ce347..4d8f7bb 100644 --- a/src/types/entities/audit_log.rs +++ b/src/types/entities/audit_log.rs @@ -110,7 +110,8 @@ pub struct AuditLogChange { PartialOrd, Ord, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] /// # Reference: /// See diff --git a/src/types/entities/auto_moderation.rs b/src/types/entities/auto_moderation.rs index 3caa16c..dbed3fe 100644 --- a/src/types/entities/auto_moderation.rs +++ b/src/types/entities/auto_moderation.rs @@ -32,7 +32,8 @@ pub struct AutoModerationRule { } #[derive(Serialize_repr, Deserialize_repr, Debug, Clone, Default, Copy)] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationRuleEventType { @@ -43,7 +44,8 @@ pub enum AutoModerationRuleEventType { #[derive( Serialize_repr, Deserialize_repr, Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord, Copy, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationRuleTriggerType { @@ -80,18 +82,22 @@ pub struct AutoModerationRuleTriggerMetadataForKeywordPreset { pub allow_list: Vec, } -#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord, Copy)] +#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord)] /// See pub struct AutoModerationRuleTriggerMetadataForMentionSpam { /// Max 50 + #[cfg(not(feature = "sqlx"))] pub mention_total_limit: u8, + #[cfg(feature = "sqlx")] + pub mention_total_limit: sqlx_pg_uint::PgU8, pub mention_raid_protection_enabled: bool, } #[derive( Serialize_repr, Deserialize_repr, Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord, Copy, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationRuleKeywordPresetType { @@ -110,9 +116,20 @@ pub struct AutoModerationAction { } #[derive( - Serialize_repr, Deserialize_repr, Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord, Copy, Hash + Serialize_repr, + Deserialize_repr, + Debug, + Clone, + Default, + PartialEq, + Eq, + PartialOrd, + Ord, + Copy, + Hash, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationActionType { diff --git a/src/types/entities/channel.rs b/src/types/entities/channel.rs index a2f7d7f..a0e7ffa 100644 --- a/src/types/entities/channel.rs +++ b/src/types/entities/channel.rs @@ -194,7 +194,8 @@ pub struct PermissionOverwrite { } #[derive(Debug, Serialize_repr, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Copy)] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] /// # Reference /// /// See diff --git a/src/types/entities/emoji.rs b/src/types/entities/emoji.rs index 82f3e37..9a59ab0 100644 --- a/src/types/entities/emoji.rs +++ b/src/types/entities/emoji.rs @@ -32,9 +32,6 @@ use super::option_arc_rwlock_ptr_eq; pub struct Emoji { pub id: Snowflake, pub name: Option, - #[cfg(feature = "sqlx")] - pub roles: Option>>, - #[cfg(not(feature = "sqlx"))] pub roles: Option>, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub user: Option>, diff --git a/src/types/entities/guild.rs b/src/types/entities/guild.rs index 57b555f..78ba061 100644 --- a/src/types/entities/guild.rs +++ b/src/types/entities/guild.rs @@ -303,7 +303,8 @@ impl PartialEq for GuildScheduledEvent { } #[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, PartialEq, Copy)] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] /// See pub enum GuildScheduledEventPrivacyLevel { #[default] @@ -311,7 +312,8 @@ pub enum GuildScheduledEventPrivacyLevel { } #[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, PartialEq, Copy)] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] /// See pub enum GuildScheduledEventStatus { #[default] @@ -334,7 +336,8 @@ pub enum GuildScheduledEventStatus { Copy, Hash, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] /// See pub enum GuildScheduledEventEntityType { #[default] @@ -372,7 +375,8 @@ pub struct VoiceRegion { Ord, )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum MessageNotificationLevel { @@ -395,7 +399,8 @@ pub enum MessageNotificationLevel { Ord, )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum ExplicitContentFilterLevel { @@ -419,7 +424,8 @@ pub enum ExplicitContentFilterLevel { Ord, )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum VerificationLevel { @@ -445,7 +451,8 @@ pub enum VerificationLevel { Ord, )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum MFALevel { @@ -468,7 +475,8 @@ pub enum MFALevel { Ord, )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum NSFWLevel { @@ -493,7 +501,8 @@ pub enum NSFWLevel { Ord, )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i8))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum PremiumTier { diff --git a/src/types/entities/integration.rs b/src/types/entities/integration.rs index 16cd991..96527fc 100644 --- a/src/types/entities/integration.rs +++ b/src/types/entities/integration.rs @@ -23,8 +23,14 @@ pub struct Integration { pub syncing: Option, pub role_id: Option, pub enabled_emoticons: Option, + #[cfg(not(feature = "sqlx"))] pub expire_behaviour: Option, + #[cfg(feature = "sqlx")] + pub expire_behaviour: Option, + #[cfg(not(feature = "sqlx"))] pub expire_grace_period: Option, + #[cfg(feature = "sqlx")] + pub expire_grace_period: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub user: Option>, #[cfg_attr(feature = "sqlx", sqlx(skip))] diff --git a/src/types/entities/invite.rs b/src/types/entities/invite.rs index 0160ac9..52180d8 100644 --- a/src/types/entities/invite.rs +++ b/src/types/entities/invite.rs @@ -5,8 +5,11 @@ use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; -use crate::types::{Snowflake, WelcomeScreenObject, Shared, InviteFlags, InviteType, InviteTargetType, Guild, VerificationLevel}; use crate::types::types::guild_configuration::GuildFeaturesList; +use crate::types::{ + Guild, InviteFlags, InviteTargetType, InviteType, Shared, Snowflake, VerificationLevel, + WelcomeScreenObject, +}; use super::guild::GuildScheduledEvent; use super::{Application, Channel, GuildMember, NSFWLevel, User}; @@ -36,8 +39,14 @@ pub struct Invite { pub invite_type: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub inviter: Option, + #[cfg(not(feature = "sqlx"))] pub max_age: Option, + #[cfg(feature = "sqlx")] + pub max_age: Option, + #[cfg(not(feature = "sqlx"))] pub max_uses: Option, + #[cfg(feature = "sqlx")] + pub max_uses: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub stage_instance: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] @@ -47,7 +56,10 @@ pub struct Invite { #[cfg_attr(feature = "sqlx", sqlx(skip))] pub target_user: Option, pub temporary: Option, + #[cfg(not(feature = "sqlx"))] pub uses: Option, + #[cfg(feature = "sqlx")] + pub uses: Option, } /// The guild an invite is for. diff --git a/src/types/entities/message.rs b/src/types/entities/message.rs index dbea3d5..eea9288 100644 --- a/src/types/entities/message.rs +++ b/src/types/entities/message.rs @@ -150,7 +150,10 @@ pub enum MessageReferenceType { pub struct MessageInteraction { pub id: Snowflake, #[serde(rename = "type")] + #[cfg(not(feature = "sqlx"))] pub interaction_type: u8, + #[cfg(feature = "sqlx")] + pub interaction_type: sqlx_pg_uint::PgU8, pub name: String, pub user: User, pub member: Option>, @@ -282,8 +285,14 @@ pub struct EmbedField { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct Reaction { + #[cfg(not(feature = "sqlx"))] pub count: u32, + #[cfg(feature = "sqlx")] + pub count: sqlx_pg_uint::PgU32, + #[cfg(not(feature = "sqlx"))] pub burst_count: u32, + #[cfg(feature = "sqlx")] + pub burst_count: sqlx_pg_uint::PgU32, #[serde(default)] pub me: bool, #[serde(default)] @@ -296,6 +305,8 @@ pub struct Reaction { } #[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize, Eq, PartialOrd, Ord)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] pub enum Component { ActionRow = 1, Button = 2, @@ -320,7 +331,8 @@ pub struct MessageActivity { Debug, Default, PartialEq, Clone, Copy, Serialize_repr, Deserialize_repr, Eq, PartialOrd, Ord, )] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] /// # Reference /// See @@ -464,7 +476,8 @@ pub struct PartialEmoji { #[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize, PartialOrd, Ord, Eq, Hash)] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] pub enum ReactionType { Normal = 0, Burst = 1, // The dreaded super reactions diff --git a/src/types/entities/relationship.rs b/src/types/entities/relationship.rs index e3276db..08cb41f 100644 --- a/src/types/entities/relationship.rs +++ b/src/types/entities/relationship.rs @@ -45,7 +45,8 @@ impl PartialEq for Relationship { Copy, Hash, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] /// See pub enum RelationshipType { Suggestion = 6, diff --git a/src/types/entities/role.rs b/src/types/entities/role.rs index 20d2fcf..a19a966 100644 --- a/src/types/entities/role.rs +++ b/src/types/entities/role.rs @@ -32,7 +32,10 @@ pub struct RoleObject { pub hoist: bool, pub icon: Option, pub unicode_emoji: Option, + #[cfg(not(feature = "sqlx"))] pub position: u16, + #[cfg(feature = "sqlx")] + pub position: sqlx_pg_uint::PgU16, #[serde(default)] pub permissions: PermissionFlags, pub managed: bool, @@ -47,11 +50,16 @@ pub struct RoleObject { pub struct RoleSubscriptionData { pub role_subscription_listing_id: Snowflake, pub tier_name: String, + #[cfg(not(feature = "sqlx"))] pub total_months_subscribed: u32, + #[cfg(feature = "sqlx")] + pub total_months_subscribed: sqlx_pg_uint::PgU32, pub is_renewal: bool, } -#[derive(Serialize, Deserialize, Debug, Default, Clone, PartialEq, Eq, Hash, Copy, PartialOrd, Ord)] +#[derive( + Serialize, Deserialize, Debug, Default, Clone, PartialEq, Eq, Hash, Copy, PartialOrd, Ord, +)] /// See pub struct RoleTags { #[serde(default)] diff --git a/src/types/entities/stage_instance.rs b/src/types/entities/stage_instance.rs index 38e2817..cf473fa 100644 --- a/src/types/entities/stage_instance.rs +++ b/src/types/entities/stage_instance.rs @@ -21,8 +21,11 @@ pub struct StageInstance { pub guild_scheduled_event_id: Option, } -#[derive(Serialize_repr, Deserialize_repr, Debug, Clone, Default, Copy, PartialEq, Eq, PartialOrd, Ord)] -#[repr(u8)] +#[derive( + Serialize_repr, Deserialize_repr, Debug, Clone, Default, Copy, PartialEq, Eq, PartialOrd, Ord, +)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum StageInstancePrivacyLevel { diff --git a/src/types/entities/sticker.rs b/src/types/entities/sticker.rs index 6fcc708..73505a7 100644 --- a/src/types/entities/sticker.rs +++ b/src/types/entities/sticker.rs @@ -77,7 +77,8 @@ pub struct StickerItem { #[derive( Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Hash, Serialize_repr, Deserialize_repr, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[serde(rename = "SCREAMING_SNAKE_CASE")] /// # Reference @@ -93,7 +94,8 @@ pub enum StickerType { #[derive( Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Hash, Serialize_repr, Deserialize_repr, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] /// # Reference /// See diff --git a/src/types/entities/team.rs b/src/types/entities/team.rs index 4748fad..a6cfd95 100644 --- a/src/types/entities/team.rs +++ b/src/types/entities/team.rs @@ -34,7 +34,10 @@ impl PartialEq for Team { #[derive(Debug, Deserialize, Serialize, Clone)] pub struct TeamMember { + #[cfg(not(feature = "sqlx"))] pub membership_state: u8, + #[cfg(feature = "sqlx")] + pub membership_state: sqlx_pg_uint::PgU8, pub permissions: Vec, pub team_id: Snowflake, pub user: Shared, diff --git a/src/types/entities/user.rs b/src/types/entities/user.rs index 4722dc8..f2a5bfa 100644 --- a/src/types/entities/user.rs +++ b/src/types/entities/user.rs @@ -47,7 +47,10 @@ pub struct User { pub bot: Option, pub system: Option, pub mfa_enabled: Option, + #[cfg(not(feature = "sqlx"))] pub accent_color: Option, + #[cfg(feature = "sqlx")] + pub accent_color: Option, #[cfg_attr(feature = "sqlx", sqlx(default))] pub locale: Option, pub verified: Option, @@ -58,7 +61,10 @@ pub struct User { #[serde(deserialize_with = "deserialize_option_number_from_string")] pub flags: Option, pub premium_since: Option>, + #[cfg(not(feature = "sqlx"))] pub premium_type: Option, + #[cfg(feature = "sqlx")] + pub premium_type: Option, pub pronouns: Option, pub public_flags: Option, pub banner: Option, @@ -144,13 +150,19 @@ pub struct PublicUser { pub username: Option, pub discriminator: Option, pub avatar: Option, + #[cfg(not(feature = "sqlx"))] pub accent_color: Option, + #[cfg(feature = "sqlx")] + pub accent_color: Option, pub banner: Option, pub theme_colors: Option, pub pronouns: Option, pub bot: Option, pub bio: Option, + #[cfg(not(feature = "sqlx"))] pub premium_type: Option, + #[cfg(feature = "sqlx")] + pub premium_type: Option, pub premium_since: Option>, pub public_flags: Option, } diff --git a/src/types/entities/user_settings.rs b/src/types/entities/user_settings.rs index fdd188c..3910f8d 100644 --- a/src/types/entities/user_settings.rs +++ b/src/types/entities/user_settings.rs @@ -45,7 +45,10 @@ pub struct UserSettings { pub afk_timeout: Option, pub allow_accessibility_detection: bool, pub animate_emoji: bool, + #[cfg(not(feature = "sqlx"))] pub animate_stickers: u8, + #[cfg(feature = "sqlx")] + pub animate_stickers: sqlx_pg_uint::PgU8, pub contact_sync_enabled: bool, pub convert_emoticons: bool, pub custom_status: Option, @@ -54,7 +57,10 @@ pub struct UserSettings { pub developer_mode: bool, pub disable_games_tab: bool, pub enable_tts_command: bool, + #[cfg(not(feature = "sqlx"))] pub explicit_content_filter: u8, + #[cfg(feature = "sqlx")] + pub explicit_content_filter: sqlx_pg_uint::PgU8, pub friend_source_flags: FriendSourceFlags, pub gateway_connected: Option, pub gif_auto_play: bool, @@ -82,7 +88,10 @@ impl Default for UserSettings { afk_timeout: Some(3600), allow_accessibility_detection: true, animate_emoji: true, + #[cfg(not(feature = "sqlx"))] animate_stickers: 0, + #[cfg(feature = "sqlx")] + animate_stickers: 0.into(), contact_sync_enabled: false, convert_emoticons: false, custom_status: None, @@ -91,7 +100,10 @@ impl Default for UserSettings { developer_mode: true, disable_games_tab: true, enable_tts_command: false, + #[cfg(not(feature = "sqlx"))] explicit_content_filter: 0, + #[cfg(feature = "sqlx")] + explicit_content_filter: 0.into(), friend_source_flags: Default::default(), gateway_connected: Some(false), gif_auto_play: false, @@ -137,7 +149,10 @@ impl Default for FriendSourceFlags { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct GuildFolder { + #[cfg(not(feature = "sqlx"))] pub color: Option, + #[cfg(feature = "sqlx")] + pub color: Option, pub guild_ids: Vec, // FIXME: What is this thing? // It's not a snowflake, and it's sometimes a string and sometimes an integer. diff --git a/src/types/entities/webhook.rs b/src/types/entities/webhook.rs index 19f6203..278ff0d 100644 --- a/src/types/entities/webhook.rs +++ b/src/types/entities/webhook.rs @@ -71,7 +71,8 @@ impl PartialEq for Webhook { #[derive( Serialize, Deserialize, Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, )] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] pub enum WebhookType { #[default]