From a8b747f1ef4b9e85bbdd252f3ba0878b2d221dcf Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Mon, 19 Aug 2024 23:34:13 +0200 Subject: [PATCH] Change repr(i8) to repr(i16) in enums when sqlx feature is enabled, fix sqlx incompatibilities --- src/types/entities/application.rs | 4 ++-- src/types/entities/auto_moderation.rs | 8 ++++---- src/types/entities/guild.rs | 16 ++++++++-------- src/types/entities/user_settings.rs | 7 ++++++- src/types/schema/channel.rs | 16 +++++++++++----- 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/types/entities/application.rs b/src/types/entities/application.rs index 908568b..512a031 100644 --- a/src/types/entities/application.rs +++ b/src/types/entities/application.rs @@ -225,7 +225,7 @@ pub struct ApplicationCommandOptionChoice { #[derive(Debug, Clone, Copy, Serialize_repr, Deserialize_repr, PartialEq, Eq, Hash)] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] /// # Reference /// See pub enum ApplicationCommandOptionType { @@ -296,7 +296,7 @@ pub struct ApplicationCommandPermission { )] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] /// See pub enum ApplicationCommandPermissionType { #[default] diff --git a/src/types/entities/auto_moderation.rs b/src/types/entities/auto_moderation.rs index dbed3fe..5606e33 100644 --- a/src/types/entities/auto_moderation.rs +++ b/src/types/entities/auto_moderation.rs @@ -33,7 +33,7 @@ pub struct AutoModerationRule { #[derive(Serialize_repr, Deserialize_repr, Debug, Clone, Default, Copy)] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationRuleEventType { @@ -45,7 +45,7 @@ pub enum AutoModerationRuleEventType { Serialize_repr, Deserialize_repr, Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord, Copy, )] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationRuleTriggerType { @@ -97,7 +97,7 @@ pub struct AutoModerationRuleTriggerMetadataForMentionSpam { Serialize_repr, Deserialize_repr, Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord, Copy, )] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationRuleKeywordPresetType { @@ -129,7 +129,7 @@ pub struct AutoModerationAction { Hash, )] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum AutoModerationActionType { diff --git a/src/types/entities/guild.rs b/src/types/entities/guild.rs index 78ba061..c958c55 100644 --- a/src/types/entities/guild.rs +++ b/src/types/entities/guild.rs @@ -304,7 +304,7 @@ impl PartialEq for GuildScheduledEvent { #[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, PartialEq, Copy)] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] /// See pub enum GuildScheduledEventPrivacyLevel { #[default] @@ -313,7 +313,7 @@ pub enum GuildScheduledEventPrivacyLevel { #[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, PartialEq, Copy)] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] /// See pub enum GuildScheduledEventStatus { #[default] @@ -337,7 +337,7 @@ pub enum GuildScheduledEventStatus { Hash, )] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] /// See pub enum GuildScheduledEventEntityType { #[default] @@ -400,7 +400,7 @@ pub enum MessageNotificationLevel { )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum ExplicitContentFilterLevel { @@ -425,7 +425,7 @@ pub enum ExplicitContentFilterLevel { )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum VerificationLevel { @@ -452,7 +452,7 @@ pub enum VerificationLevel { )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum MFALevel { @@ -476,7 +476,7 @@ pub enum MFALevel { )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum NSFWLevel { @@ -502,7 +502,7 @@ pub enum NSFWLevel { )] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[cfg_attr(not(feature = "sqlx"), repr(u8))] -#[cfg_attr(feature = "sqlx", repr(i8))] +#[cfg_attr(feature = "sqlx", repr(i16))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] /// See pub enum PremiumTier { diff --git a/src/types/entities/user_settings.rs b/src/types/entities/user_settings.rs index 3910f8d..df40b95 100644 --- a/src/types/entities/user_settings.rs +++ b/src/types/entities/user_settings.rs @@ -42,7 +42,10 @@ pub enum UserTheme { #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "sqlx", derive(sqlx::FromRow))] pub struct UserSettings { + #[cfg(not(feature = "sqlx"))] pub afk_timeout: Option, + #[cfg(feature = "sqlx")] + pub afk_timeout: Option, pub allow_accessibility_detection: bool, pub animate_emoji: bool, #[cfg(not(feature = "sqlx"))] @@ -85,7 +88,7 @@ pub struct UserSettings { impl Default for UserSettings { fn default() -> Self { Self { - afk_timeout: Some(3600), + afk_timeout: Some(3600.into()), allow_accessibility_detection: true, animate_emoji: true, #[cfg(not(feature = "sqlx"))] @@ -137,6 +140,7 @@ pub struct CustomStatus { } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, PartialOrd, Ord, Hash)] +#[cfg_attr(feature = "sqlx", derive(sqlx::FromRow))] pub struct FriendSourceFlags { pub all: bool, } @@ -148,6 +152,7 @@ impl Default for FriendSourceFlags { } #[derive(Debug, Clone, Serialize, Deserialize)] +#[cfg_attr(feature = "sqlx", derive(sqlx::FromRow))] pub struct GuildFolder { #[cfg(not(feature = "sqlx"))] pub color: Option, diff --git a/src/types/schema/channel.rs b/src/types/schema/channel.rs index 0a3d468..62b3b53 100644 --- a/src/types/schema/channel.rs +++ b/src/types/schema/channel.rs @@ -5,7 +5,7 @@ use bitflags::bitflags; use serde::{Deserialize, Serialize}; -use crate::types::{ChannelType, DefaultReaction, entities::PermissionOverwrite, Snowflake}; +use crate::types::{entities::PermissionOverwrite, ChannelType, DefaultReaction, Snowflake}; #[derive(Debug, Deserialize, Serialize, Default, PartialEq, PartialOrd)] #[serde(rename_all = "snake_case")] @@ -141,7 +141,8 @@ bitflags! { #[derive(Debug, Deserialize, Serialize, Clone, Copy, Default, PartialOrd, Ord, PartialEq, Eq)] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] pub enum InviteType { #[default] Guild = 0, @@ -152,7 +153,8 @@ pub enum InviteType { #[derive(Debug, Deserialize, Serialize, Clone, Copy, Default, PartialOrd, Ord, PartialEq, Eq)] #[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] -#[repr(u8)] +#[cfg_attr(not(feature = "sqlx"), repr(u8))] +#[cfg_attr(feature = "sqlx", repr(i16))] pub enum InviteTargetType { #[default] Stream = 1, @@ -169,7 +171,9 @@ pub struct AddChannelRecipientSchema { } /// See -#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialOrd, Ord, PartialEq, Eq, Copy, Hash)] +#[derive( + Debug, Deserialize, Serialize, Clone, Default, PartialOrd, Ord, PartialEq, Eq, Copy, Hash, +)] pub struct ModifyChannelPositionsSchema { pub id: Snowflake, pub position: Option, @@ -178,7 +182,9 @@ pub struct ModifyChannelPositionsSchema { } /// See -#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialOrd, Ord, PartialEq, Eq, Copy, Hash)] +#[derive( + Debug, Deserialize, Serialize, Clone, Default, PartialOrd, Ord, PartialEq, Eq, Copy, Hash, +)] pub struct AddFollowingChannelSchema { pub webhook_channel_id: Snowflake, }