From d0ba6e7edac63e128b4fd4d4a269c43c491349f1 Mon Sep 17 00:00:00 2001 From: Greg Johnston Date: Thu, 21 Aug 2025 20:08:38 -0400 Subject: [PATCH] change: migrate to `serde_qs` 1.0 --- Cargo.lock | 16 +++++++++------- Cargo.toml | 2 +- leptos/src/form.rs | 4 +++- server_fn/src/codec/url.rs | 15 ++++++++++----- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1418a805e8..648b6fabbe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1221,7 +1221,7 @@ dependencies = [ "gobject-sys", "libc", "system-deps", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1563,7 +1563,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.6.0", "tokio", "tower-service", "tracing", @@ -2666,7 +2666,7 @@ dependencies = [ "once_cell", "socket2 0.5.10", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3217,11 +3217,13 @@ dependencies = [ [[package]] name = "serde_qs" -version = "0.15.0" +version = "1.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3faaf9e727533a19351a43cc5a8de957372163c7d35cc48c90b75cdda13c352" +checksum = "4cb0b9062a400c31442e67d1f2b1e7746bebd691110ebee1b7d0c7293b04fab1" dependencies = [ + "itoa", "percent-encoding", + "ryu", "serde", "thiserror 2.0.12", ] @@ -3642,7 +3644,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4404,7 +4406,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index cb95b4148c..f7e16e2275 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -109,7 +109,7 @@ proc-macro2 = { default-features = false, version = "1.0.96" } serde = { default-features = false, version = "1.0.219" } parking_lot = { default-features = false, version = "0.12.4" } axum = { default-features = false, version = "0.8.4" } -serde_qs = { default-features = false, version = "0.15.0" } +serde_qs = { default-features = false, version = "1.0.0-rc.3" } syn = { default-features = false, version = "2.0.104" } xxhash-rust = { default-features = false, version = "0.8.15" } paste = { default-features = false, version = "1.0.15" } diff --git a/leptos/src/form.rs b/leptos/src/form.rs index 529b3f9025..b257e22bc0 100644 --- a/leptos/src/form.rs +++ b/leptos/src/form.rs @@ -287,7 +287,9 @@ where web_sys::UrlSearchParams::new_with_str_sequence_sequence(form_data) .unwrap_throw(); let data = data.to_string().as_string().unwrap_or_default(); - serde_qs::Config::new(5, false).deserialize_str::(&data) + serde_qs::Config::new() + .use_form_encoding(true) + .deserialize_str::(&data) } } diff --git a/server_fn/src/codec/url.rs b/server_fn/src/codec/url.rs index c818c4fc51..02015a1a3a 100644 --- a/server_fn/src/codec/url.rs +++ b/server_fn/src/codec/url.rs @@ -58,7 +58,8 @@ where { async fn from_req(req: Request) -> Result { let string_data = req.as_query().unwrap_or_default(); - let args = serde_qs::Config::new(5, false) + let args = serde_qs::Config::new() + .use_form_encoding(true) .deserialize_str::(string_data) .map_err(|e| { ServerFnErrorErr::Args(e.to_string()).into_app_error() @@ -97,7 +98,8 @@ where { async fn from_req(req: Request) -> Result { let string_data = req.try_into_string().await?; - let args = serde_qs::Config::new(5, false) + let args = serde_qs::Config::new() + .use_form_encoding(true) .deserialize_str::(&string_data) .map_err(|e| { ServerFnErrorErr::Args(e.to_string()).into_app_error() @@ -136,7 +138,8 @@ where { async fn from_req(req: Request) -> Result { let string_data = req.as_query().unwrap_or_default(); - let args = serde_qs::Config::new(5, false) + let args = serde_qs::Config::new() + .use_form_encoding(true) .deserialize_str::(string_data) .map_err(|e| { ServerFnErrorErr::Args(e.to_string()).into_app_error() @@ -175,7 +178,8 @@ where { async fn from_req(req: Request) -> Result { let string_data = req.as_query().unwrap_or_default(); - let args = serde_qs::Config::new(5, false) + let args = serde_qs::Config::new() + .use_form_encoding(true) .deserialize_str::(string_data) .map_err(|e| { ServerFnErrorErr::Args(e.to_string()).into_app_error() @@ -214,7 +218,8 @@ where { async fn from_req(req: Request) -> Result { let string_data = req.as_query().unwrap_or_default(); - let args = serde_qs::Config::new(5, false) + let args = serde_qs::Config::new() + .use_form_encoding(true) .deserialize_str::(string_data) .map_err(|e| { ServerFnErrorErr::Args(e.to_string()).into_app_error()