Change sqlx::Any to sqlx::Postgres
This commit is contained in:
parent
ec9541f38e
commit
b8571faf60
|
@ -49,13 +49,11 @@ log = "0.4.22"
|
||||||
async-trait = "0.1.81"
|
async-trait = "0.1.81"
|
||||||
chorus-macros = { path = "./chorus-macros", version = "0" } # Note: version here is used when releasing. This will use the latest release. Make sure to republish the crate when code in macros is changed!
|
chorus-macros = { path = "./chorus-macros", version = "0" } # Note: version here is used when releasing. This will use the latest release. Make sure to republish the crate when code in macros is changed!
|
||||||
sqlx = { version = "0.8.0", features = [
|
sqlx = { version = "0.8.0", features = [
|
||||||
"mysql",
|
|
||||||
"sqlite",
|
|
||||||
"json",
|
"json",
|
||||||
"chrono",
|
"chrono",
|
||||||
"ipnetwork",
|
"ipnetwork",
|
||||||
"runtime-tokio-rustls",
|
"runtime-tokio-rustls",
|
||||||
"any",
|
"postgres",
|
||||||
], optional = true }
|
], optional = true }
|
||||||
discortp = { version = "0.5.0", optional = true, features = [
|
discortp = { version = "0.5.0", optional = true, features = [
|
||||||
"rtp",
|
"rtp",
|
||||||
|
|
|
@ -164,23 +164,23 @@ pub fn sqlx_bitflag_derive(input: TokenStream) -> TokenStream {
|
||||||
|
|
||||||
quote!{
|
quote!{
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl sqlx::Type<sqlx::Any> for #name {
|
impl sqlx::Type<sqlx::Postgres> for #name {
|
||||||
fn type_info() -> sqlx::any::AnyTypeInfo {
|
fn type_info() -> sqlx::postgres::PgTypeInfo {
|
||||||
<Vec<u8> as sqlx::Type<sqlx::Any>>::type_info()
|
<Vec<u8> as sqlx::Type<sqlx::Postgres>>::type_info()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl<'q> sqlx::Encode<'q, sqlx::Any> for #name {
|
impl<'q> sqlx::Encode<'q, sqlx::Postgres> for #name {
|
||||||
fn encode_by_ref(&self, buf: &mut <sqlx::Any as sqlx::Database>::ArgumentBuffer<'q>) -> Result<sqlx::encode::IsNull, sqlx::error::BoxDynError> {
|
fn encode_by_ref(&self, buf: &mut <sqlx::Postgres as sqlx::Database>::ArgumentBuffer<'q>) -> Result<sqlx::encode::IsNull, sqlx::error::BoxDynError> {
|
||||||
<Vec<u8> as sqlx::Encode<sqlx::Any>>::encode_by_ref(&self.bits().to_be_bytes().into(), buf)
|
<Vec<u8> as sqlx::Encode<sqlx::Postgres>>::encode_by_ref(&self.bits().to_be_bytes().into(), buf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl<'q> sqlx::Decode<'q, sqlx::Any> for #name {
|
impl<'q> sqlx::Decode<'q, sqlx::Postgres> for #name {
|
||||||
fn decode(value: <sqlx::Any as sqlx::Database>::ValueRef<'q>) -> Result<Self, sqlx::error::BoxDynError> {
|
fn decode(value: <sqlx::Postgres as sqlx::Database>::ValueRef<'q>) -> Result<Self, sqlx::error::BoxDynError> {
|
||||||
let vec = <Vec<u8> as sqlx::Decode<sqlx::Any>>::decode(value)?;
|
let vec = <Vec<u8> as sqlx::Decode<sqlx::Postgres>>::decode(value)?;
|
||||||
Ok(Self::from_bits(vec_u8_to_u64(vec)).unwrap())
|
Ok(Self::from_bits(vec_u8_to_u64(vec)).unwrap())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,11 +162,11 @@ impl Display for GuildFeaturesList {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl<'r> sqlx::Decode<'r, sqlx::Any> for GuildFeaturesList {
|
impl<'r> sqlx::Decode<'r, sqlx::Postgres> for GuildFeaturesList {
|
||||||
fn decode(
|
fn decode(
|
||||||
value: <sqlx::Any as sqlx::Database>::ValueRef<'r>,
|
value: <sqlx::Postgres as sqlx::Database>::ValueRef<'r>,
|
||||||
) -> Result<Self, sqlx::error::BoxDynError> {
|
) -> Result<Self, sqlx::error::BoxDynError> {
|
||||||
let v = <String as sqlx::Decode<sqlx::Any>>::decode(value)?;
|
let v = <String as sqlx::Decode<sqlx::Postgres>>::decode(value)?;
|
||||||
Ok(Self(
|
Ok(Self(
|
||||||
v.split(',')
|
v.split(',')
|
||||||
.filter(|f| !f.is_empty())
|
.filter(|f| !f.is_empty())
|
||||||
|
@ -177,10 +177,10 @@ impl<'r> sqlx::Decode<'r, sqlx::Any> for GuildFeaturesList {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl<'q> sqlx::Encode<'q, sqlx::Any> for GuildFeaturesList {
|
impl<'q> sqlx::Encode<'q, sqlx::Postgres> for GuildFeaturesList {
|
||||||
fn encode_by_ref(
|
fn encode_by_ref(
|
||||||
&self,
|
&self,
|
||||||
buf: &mut <sqlx::Any as sqlx::Database>::ArgumentBuffer<'q>,
|
buf: &mut <sqlx::Postgres as sqlx::Database>::ArgumentBuffer<'q>,
|
||||||
) -> Result<sqlx::encode::IsNull, Box<dyn std::error::Error + Send + Sync>> {
|
) -> Result<sqlx::encode::IsNull, Box<dyn std::error::Error + Send + Sync>> {
|
||||||
if self.is_empty() {
|
if self.is_empty() {
|
||||||
return Ok(sqlx::encode::IsNull::Yes);
|
return Ok(sqlx::encode::IsNull::Yes);
|
||||||
|
@ -191,18 +191,18 @@ impl<'q> sqlx::Encode<'q, sqlx::Any> for GuildFeaturesList {
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
.join(",");
|
.join(",");
|
||||||
|
|
||||||
<String as sqlx::Encode<sqlx::Any>>::encode_by_ref(&features, buf)
|
<String as sqlx::Encode<sqlx::Postgres>>::encode_by_ref(&features, buf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl sqlx::Type<sqlx::Any> for GuildFeaturesList {
|
impl sqlx::Type<sqlx::Postgres> for GuildFeaturesList {
|
||||||
fn type_info() -> sqlx::any::AnyTypeInfo {
|
fn type_info() -> <sqlx::Postgres as sqlx::Database>::TypeInfo {
|
||||||
<String as sqlx::Type<sqlx::Any>>::type_info()
|
<String as sqlx::Type<sqlx::Postgres>>::type_info()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn compatible(ty: &sqlx::any::AnyTypeInfo) -> bool {
|
fn compatible(ty: &<sqlx::Postgres as sqlx::Database>::TypeInfo) -> bool {
|
||||||
<String as sqlx::Type<sqlx::Any>>::compatible(ty)
|
<String as sqlx::Type<sqlx::Postgres>>::compatible(ty)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -342,7 +342,7 @@ pub struct DefaultReaction {
|
||||||
)]
|
)]
|
||||||
#[cfg_attr(feature = "sqlx", derive(sqlx::Type))]
|
#[cfg_attr(feature = "sqlx", derive(sqlx::Type))]
|
||||||
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
|
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
|
||||||
#[repr(u32)]
|
#[repr(i32)]
|
||||||
/// # Reference
|
/// # Reference
|
||||||
/// See <https://discord-userdoccers.vercel.app/resources/channel#channel-type>
|
/// See <https://discord-userdoccers.vercel.app/resources/channel#channel-type>
|
||||||
pub enum ChannelType {
|
pub enum ChannelType {
|
||||||
|
|
|
@ -109,32 +109,32 @@ impl TryFrom<Vec<u8>> for ThemeColors {
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
// TODO: Add tests for Encode and Decode.
|
// TODO: Add tests for Encode and Decode.
|
||||||
impl<'q> sqlx::Encode<'q, sqlx::Any> for ThemeColors {
|
impl<'q> sqlx::Encode<'q, sqlx::Postgres> for ThemeColors {
|
||||||
fn encode_by_ref(
|
fn encode_by_ref(
|
||||||
&self,
|
&self,
|
||||||
buf: &mut <sqlx::Any as sqlx::Database>::ArgumentBuffer<'q>,
|
buf: &mut <sqlx::Postgres as sqlx::Database>::ArgumentBuffer<'q>,
|
||||||
) -> Result<sqlx::encode::IsNull, Box<dyn std::error::Error + Send + Sync>> {
|
) -> Result<sqlx::encode::IsNull, Box<dyn std::error::Error + Send + Sync>> {
|
||||||
let mut vec_u8 = Vec::new();
|
let mut vec_u8 = Vec::new();
|
||||||
vec_u8.extend_from_slice(&self.inner.0.to_be_bytes());
|
vec_u8.extend_from_slice(&self.inner.0.to_be_bytes());
|
||||||
vec_u8.extend_from_slice(&self.inner.1.to_be_bytes());
|
vec_u8.extend_from_slice(&self.inner.1.to_be_bytes());
|
||||||
<Vec<u8> as sqlx::Encode<sqlx::Any>>::encode_by_ref(&vec_u8, buf)
|
<Vec<u8> as sqlx::Encode<sqlx::Postgres>>::encode_by_ref(&vec_u8, buf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl<'d> sqlx::Decode<'d, sqlx::Any> for ThemeColors {
|
impl<'d> sqlx::Decode<'d, sqlx::Postgres> for ThemeColors {
|
||||||
fn decode(
|
fn decode(
|
||||||
value: <sqlx::Any as sqlx::Database>::ValueRef<'d>,
|
value: <sqlx::Postgres as sqlx::Database>::ValueRef<'d>,
|
||||||
) -> Result<Self, sqlx::error::BoxDynError> {
|
) -> Result<Self, sqlx::error::BoxDynError> {
|
||||||
let value_vec = <Vec<u8> as sqlx::Decode<'d, sqlx::Any>>::decode(value)?;
|
let value_vec = <Vec<u8> as sqlx::Decode<'d, sqlx::Postgres>>::decode(value)?;
|
||||||
value_vec.try_into().map_err(|e: ChorusError| e.into())
|
value_vec.try_into().map_err(|e: ChorusError| e.into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl sqlx::Type<sqlx::Any> for ThemeColors {
|
impl sqlx::Type<sqlx::Postgres> for ThemeColors {
|
||||||
fn type_info() -> <sqlx::Any as sqlx::Database>::TypeInfo {
|
fn type_info() -> <sqlx::Postgres as sqlx::Database>::TypeInfo {
|
||||||
<String as sqlx::Type<sqlx::Any>>::type_info()
|
<String as sqlx::Type<sqlx::Postgres>>::type_info()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,28 +99,28 @@ impl<'de> serde::Deserialize<'de> for Snowflake {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl sqlx::Type<sqlx::Any> for Snowflake {
|
impl sqlx::Type<sqlx::Postgres> for Snowflake {
|
||||||
fn type_info() -> <sqlx::Any as sqlx::Database>::TypeInfo {
|
fn type_info() -> <sqlx::Postgres as sqlx::Database>::TypeInfo {
|
||||||
<String as sqlx::Type<sqlx::Any>>::type_info()
|
<String as sqlx::Type<sqlx::Postgres>>::type_info()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl<'q> sqlx::Encode<'q, sqlx::Any> for Snowflake {
|
impl<'q> sqlx::Encode<'q, sqlx::Postgres> for Snowflake {
|
||||||
fn encode_by_ref(
|
fn encode_by_ref(
|
||||||
&self,
|
&self,
|
||||||
buf: &mut <sqlx::Any as sqlx::Database>::ArgumentBuffer<'q>,
|
buf: &mut <sqlx::Postgres as sqlx::Database>::ArgumentBuffer<'q>,
|
||||||
) -> Result<sqlx::encode::IsNull, sqlx::error::BoxDynError> {
|
) -> Result<sqlx::encode::IsNull, sqlx::error::BoxDynError> {
|
||||||
<String as sqlx::Encode<'q, sqlx::Any>>::encode_by_ref(&self.0.to_string(), buf)
|
<String as sqlx::Encode<'q, sqlx::Postgres>>::encode_by_ref(&self.0.to_string(), buf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlx")]
|
#[cfg(feature = "sqlx")]
|
||||||
impl<'d> sqlx::Decode<'d, sqlx::Any> for Snowflake {
|
impl<'d> sqlx::Decode<'d, sqlx::Postgres> for Snowflake {
|
||||||
fn decode(
|
fn decode(
|
||||||
value: <sqlx::Any as sqlx::Database>::ValueRef<'d>,
|
value: <sqlx::Postgres as sqlx::Database>::ValueRef<'d>,
|
||||||
) -> Result<Self, sqlx::error::BoxDynError> {
|
) -> Result<Self, sqlx::error::BoxDynError> {
|
||||||
<String as sqlx::Decode<'d, sqlx::Any>>::decode(value)
|
<String as sqlx::Decode<'d, sqlx::Postgres>>::decode(value)
|
||||||
.map(|s| s.parse::<u64>().map(Snowflake).unwrap())
|
.map(|s| s.parse::<u64>().map(Snowflake).unwrap())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue