Compare commits

..

No commits in common. "f0dbd3410f9c55fcf7470ee158d423d1bcd12353" and "e9b3de23424e1c7d3e7b1c4777e9c1a4024a0d13" have entirely different histories.

5 changed files with 44 additions and 81 deletions

99
Cargo.lock generated
View File

@ -259,7 +259,7 @@ dependencies = [
"rand", "rand",
"regex", "regex",
"reqwest", "reqwest",
"rustls 0.21.12", "rustls",
"serde", "serde",
"serde-aux", "serde-aux",
"serde_json", "serde_json",
@ -282,7 +282,7 @@ dependencies = [
[[package]] [[package]]
name = "chorus-macros" name = "chorus-macros"
version = "0.5.0" version = "0.4.1"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"quote", "quote",
@ -1018,7 +1018,7 @@ dependencies = [
"futures-util", "futures-util",
"http 0.2.12", "http 0.2.12",
"hyper 0.14.30", "hyper 0.14.30",
"rustls 0.21.12", "rustls",
"tokio", "tokio",
"tokio-rustls", "tokio-rustls",
] ]
@ -1175,9 +1175,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
[[package]] [[package]]
name = "libsqlite3-sys" name = "libsqlite3-sys"
version = "0.30.1" version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
dependencies = [ dependencies = [
"cc", "cc",
"pkg-config", "pkg-config",
@ -1767,8 +1767,8 @@ dependencies = [
"once_cell", "once_cell",
"percent-encoding", "percent-encoding",
"pin-project-lite", "pin-project-lite",
"rustls 0.21.12", "rustls",
"rustls-pemfile 1.0.4", "rustls-pemfile",
"serde", "serde",
"serde_json", "serde_json",
"serde_urlencoded", "serde_urlencoded",
@ -1880,24 +1880,10 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
dependencies = [ dependencies = [
"log", "log",
"ring 0.17.8", "ring 0.17.8",
"rustls-webpki 0.101.7", "rustls-webpki",
"sct", "sct",
] ]
[[package]]
name = "rustls"
version = "0.23.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
dependencies = [
"once_cell",
"ring 0.17.8",
"rustls-pki-types",
"rustls-webpki 0.102.6",
"subtle",
"zeroize",
]
[[package]] [[package]]
name = "rustls-pemfile" name = "rustls-pemfile"
version = "1.0.4" version = "1.0.4"
@ -1907,16 +1893,6 @@ dependencies = [
"base64 0.21.7", "base64 0.21.7",
] ]
[[package]]
name = "rustls-pemfile"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
dependencies = [
"base64 0.22.1",
"rustls-pki-types",
]
[[package]] [[package]]
name = "rustls-pki-types" name = "rustls-pki-types"
version = "1.8.0" version = "1.8.0"
@ -1933,17 +1909,6 @@ dependencies = [
"untrusted 0.9.0", "untrusted 0.9.0",
] ]
[[package]]
name = "rustls-webpki"
version = "0.102.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
dependencies = [
"ring 0.17.8",
"rustls-pki-types",
"untrusted 0.9.0",
]
[[package]] [[package]]
name = "ryu" name = "ryu"
version = "1.0.18" version = "1.0.18"
@ -2223,9 +2188,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx" name = "sqlx"
version = "0.8.1" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcfa89bea9500db4a0d038513d7a060566bfc51d46d1c014847049a45cce85e8" checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c"
dependencies = [ dependencies = [
"sqlx-core", "sqlx-core",
"sqlx-macros", "sqlx-macros",
@ -2236,9 +2201,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx-core" name = "sqlx-core"
version = "0.8.1" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d06e2f2bd861719b1f3f0c7dbe1d80c30bf59e76cf019f07d9014ed7eefb8e08" checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b"
dependencies = [ dependencies = [
"atoi", "atoi",
"bigdecimal", "bigdecimal",
@ -2264,8 +2229,8 @@ dependencies = [
"once_cell", "once_cell",
"paste", "paste",
"percent-encoding", "percent-encoding",
"rustls 0.23.12", "rustls",
"rustls-pemfile 2.1.3", "rustls-pemfile",
"serde", "serde",
"serde_json", "serde_json",
"sha2", "sha2",
@ -2276,14 +2241,14 @@ dependencies = [
"tokio-stream", "tokio-stream",
"tracing", "tracing",
"url", "url",
"webpki-roots 0.26.3", "webpki-roots 0.25.4",
] ]
[[package]] [[package]]
name = "sqlx-macros" name = "sqlx-macros"
version = "0.8.1" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f998a9defdbd48ed005a89362bd40dd2117502f15294f61c8d47034107dbbdc" checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2294,9 +2259,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx-macros-core" name = "sqlx-macros-core"
version = "0.8.1" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d100558134176a2629d46cec0c8891ba0be8910f7896abfdb75ef4ab6f4e7ce" checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776"
dependencies = [ dependencies = [
"dotenvy", "dotenvy",
"either", "either",
@ -2320,9 +2285,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx-mysql" name = "sqlx-mysql"
version = "0.8.1" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "936cac0ab331b14cb3921c62156d913e4c15b74fb6ec0f3146bd4ef6e4fb3c12" checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6"
dependencies = [ dependencies = [
"atoi", "atoi",
"base64 0.22.1", "base64 0.22.1",
@ -2364,9 +2329,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx-pg-uint" name = "sqlx-pg-uint"
version = "0.5.0" version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae1cfe6c40c1cd0053b9029a41729a533ceb32093052df626aa8bfbba45e45f6" checksum = "af20ea8395f424f24b88912691c5414283d9d8b4a206ad81b86af78c70cc9700"
dependencies = [ dependencies = [
"bigdecimal", "bigdecimal",
"serde", "serde",
@ -2377,9 +2342,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx-pg-uint-macros" name = "sqlx-pg-uint-macros"
version = "0.4.0" version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ae3447aced07f8bc71d73dc8dd1c6d25c2f4d10ea62a22ceabc12af8410d7e2" checksum = "28fad222fbde71f48f78b38888fe76d0fbc0eeb03015f9cba71dada45acd2abd"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.75", "syn 2.0.75",
@ -2387,9 +2352,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx-postgres" name = "sqlx-postgres"
version = "0.8.1" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9734dbce698c67ecf67c442f768a5e90a49b2a4d61a9f1d59f73874bd4cf0710" checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21"
dependencies = [ dependencies = [
"atoi", "atoi",
"base64 0.22.1", "base64 0.22.1",
@ -2429,9 +2394,9 @@ dependencies = [
[[package]] [[package]]
name = "sqlx-sqlite" name = "sqlx-sqlite"
version = "0.8.1" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75b419c3c1b1697833dd927bdc4c6545a620bc1bbafabd44e1efbe9afcd337e" checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee"
dependencies = [ dependencies = [
"atoi", "atoi",
"chrono", "chrono",
@ -2644,7 +2609,7 @@ version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
dependencies = [ dependencies = [
"rustls 0.21.12", "rustls",
"tokio", "tokio",
] ]
@ -2667,7 +2632,7 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
dependencies = [ dependencies = [
"futures-util", "futures-util",
"log", "log",
"rustls 0.21.12", "rustls",
"tokio", "tokio",
"tokio-rustls", "tokio-rustls",
"tungstenite", "tungstenite",
@ -2761,7 +2726,7 @@ dependencies = [
"httparse", "httparse",
"log", "log",
"rand", "rand",
"rustls 0.21.12", "rustls",
"sha1", "sha1",
"thiserror", "thiserror",
"url", "url",

View File

@ -49,7 +49,7 @@ jsonwebtoken = "8.3.0"
log = "0.4.22" 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.1", features = [ sqlx = { version = "0.8.0", features = [
"json", "json",
"chrono", "chrono",
"ipnetwork", "ipnetwork",
@ -67,7 +67,7 @@ rand = "0.8.5"
flate2 = { version = "1.0.30", optional = true } flate2 = { version = "1.0.30", optional = true }
webpki-roots = "0.26.3" webpki-roots = "0.26.3"
pubserve = { version = "1.1.0", features = ["async", "send"] } pubserve = { version = "1.1.0", features = ["async", "send"] }
sqlx-pg-uint = { version = "0.5.0", features = ["serde"], optional = true } sqlx-pg-uint = { version = "0.4.1", features = ["serde"], optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rustls = "0.21.12" rustls = "0.21.12"

View File

@ -1,6 +1,6 @@
[package] [package]
name = "chorus-macros" name = "chorus-macros"
version = "0.5.0" version = "0.4.1"
edition = "2021" edition = "2021"
license = "MPL-2.0" license = "MPL-2.0"
description = "Macros for the chorus crate." description = "Macros for the chorus crate."

View File

@ -166,21 +166,22 @@ pub fn sqlx_bitflag_derive(input: TokenStream) -> TokenStream {
#[cfg(feature = "sqlx")] #[cfg(feature = "sqlx")]
impl sqlx::Type<sqlx::Postgres> for #name { impl sqlx::Type<sqlx::Postgres> for #name {
fn type_info() -> sqlx::postgres::PgTypeInfo { fn type_info() -> sqlx::postgres::PgTypeInfo {
<sqlx_pg_uint::PgU64 as sqlx::Type<sqlx::Postgres>>::type_info() <Vec<u8> as sqlx::Type<sqlx::Postgres>>::type_info()
} }
} }
#[cfg(feature = "sqlx")] #[cfg(feature = "sqlx")]
impl<'q> sqlx::Encode<'q, sqlx::Postgres> for #name { impl<'q> sqlx::Encode<'q, sqlx::Postgres> for #name {
fn encode_by_ref(&self, buf: &mut <sqlx::Postgres 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> {
<sqlx_pg_uint::PgU64 as sqlx::Encode<sqlx::Postgres>>::encode_by_ref(&self.bits().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::Postgres> for #name { impl<'q> sqlx::Decode<'q, sqlx::Postgres> for #name {
fn decode(value: <sqlx::Postgres 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> {
<sqlx_pg_uint::PgU64 as sqlx::Decode<sqlx::Postgres>>::decode(value).map(|v| Self::from_bits_truncate(v.to_uint())) let vec = <Vec<u8> as sqlx::Decode<sqlx::Postgres>>::decode(value)?;
Ok(Self::from_bits(vec_u8_to_u64(vec)).unwrap())
} }
} }

View File

@ -98,14 +98,14 @@ impl<'de> serde::Deserialize<'de> for Snowflake {
#[cfg(feature = "sqlx")] #[cfg(feature = "sqlx")]
impl sqlx::Type<sqlx::Postgres> for Snowflake { impl sqlx::Type<sqlx::Postgres> for Snowflake {
fn type_info() -> <sqlx::Postgres as sqlx::Database>::TypeInfo { fn type_info() -> <sqlx::Postgres as sqlx::Database>::TypeInfo {
<sqlx_pg_uint::PgU64 as sqlx::Type<sqlx::Postgres>>::type_info() <String as sqlx::Type<sqlx::Postgres>>::type_info()
} }
} }
#[cfg(feature = "sqlx")] #[cfg(feature = "sqlx")]
impl sqlx::postgres::PgHasArrayType for Snowflake { impl sqlx::postgres::PgHasArrayType for Snowflake {
fn array_type_info() -> sqlx::postgres::PgTypeInfo { fn array_type_info() -> sqlx::postgres::PgTypeInfo {
<Vec<sqlx_pg_uint::PgU64> as sqlx::Type<sqlx::Postgres>>::type_info() <Vec<String> as sqlx::Type<sqlx::Postgres>>::type_info()
} }
} }
@ -115,10 +115,7 @@ impl<'q> sqlx::Encode<'q, sqlx::Postgres> for Snowflake {
&self, &self,
buf: &mut <sqlx::Postgres 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> {
<sqlx_pg_uint::PgU64 as sqlx::Encode<'q, sqlx::Postgres>>::encode_by_ref( <String as sqlx::Encode<'q, sqlx::Postgres>>::encode_by_ref(&self.0.to_string(), buf)
&sqlx_pg_uint::PgU64::from(self.0),
buf,
)
} }
} }
@ -127,8 +124,8 @@ impl<'d> sqlx::Decode<'d, sqlx::Postgres> for Snowflake {
fn decode( fn decode(
value: <sqlx::Postgres as sqlx::Database>::ValueRef<'d>, value: <sqlx::Postgres as sqlx::Database>::ValueRef<'d>,
) -> Result<Self, sqlx::error::BoxDynError> { ) -> Result<Self, sqlx::error::BoxDynError> {
<sqlx_pg_uint::PgU64 as sqlx::Decode<'d, sqlx::Postgres>>::decode(value) <String as sqlx::Decode<'d, sqlx::Postgres>>::decode(value)
.map(|s| s.to_uint().into()) .map(|s| s.parse::<u64>().map(Snowflake).unwrap())
} }
} }