Modify chorus_macros::SqlxBitflagDerive to use sqlx::Any over sqlx::MySql (broken!)

This commit is contained in:
bitfl0wer 2024-08-03 15:10:43 +02:00
parent 99d8165e4a
commit db3f4cbdb0
No known key found for this signature in database
GPG Key ID: 0ACD574FCF5226CF
1 changed files with 6 additions and 7 deletions

View File

@ -156,7 +156,6 @@ pub fn composite_derive(input: TokenStream) -> TokenStream {
} }
} }
#[proc_macro_derive(SqlxBitFlags)] #[proc_macro_derive(SqlxBitFlags)]
pub fn sqlx_bitflag_derive(input: TokenStream) -> TokenStream { pub fn sqlx_bitflag_derive(input: TokenStream) -> TokenStream {
let ast: syn::DeriveInput = syn::parse(input).unwrap(); let ast: syn::DeriveInput = syn::parse(input).unwrap();
@ -165,22 +164,22 @@ pub fn sqlx_bitflag_derive(input: TokenStream) -> TokenStream {
quote!{ quote!{
#[cfg(feature = "sqlx")] #[cfg(feature = "sqlx")]
impl sqlx::Type<sqlx::MySql> for #name { impl sqlx::Type<sqlx::Any> for #name {
fn type_info() -> sqlx::mysql::MySqlTypeInfo { fn type_info() -> sqlx::any::AnyTypeInfo {
u64::type_info() u64::type_info()
} }
} }
#[cfg(feature = "sqlx")] #[cfg(feature = "sqlx")]
impl<'q> sqlx::Encode<'q, sqlx::MySql> for #name { impl<'q> sqlx::Encode<'q, sqlx::Any> for #name {
fn encode_by_ref(&self, buf: &mut <sqlx::MySql as sqlx::database::HasArguments<'q>>::ArgumentBuffer) -> sqlx::encode::IsNull { fn encode_by_ref(&self, buf: &mut <sqlx::Any as sqlx::Database>::ArgumentBuffer<'q>) -> Result<sqlx::encode::IsNull, sqlx::error::BoxDynError> {
u64::encode_by_ref(&self.bits(), buf) u64::encode_by_ref(&self.bits(), buf)
} }
} }
#[cfg(feature = "sqlx")] #[cfg(feature = "sqlx")]
impl<'q> sqlx::Decode<'q, sqlx::MySql> for #name { impl<'q> sqlx::Decode<'q, sqlx::Any> for #name {
fn decode(value: <sqlx::MySql as sqlx::database::HasValueRef<'q>>::ValueRef) -> Result<Self, sqlx::error::BoxDynError> { fn decode(value: <sqlx::Any as sqlx::Database>::ValueRef<'q>) -> Result<Self, sqlx::error::BoxDynError> {
u64::decode(value).map(|d| #name::from_bits(d).unwrap()) u64::decode(value).map(|d| #name::from_bits(d).unwrap())
} }
} }