From cbebafbc415cee48776e0af838beb2fb2f71ff40 Mon Sep 17 00:00:00 2001 From: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Date: Sun, 21 Sep 2025 05:09:48 +0200 Subject: [PATCH] chore(deps): Depend on `serde_core` in `cargo-platform` `cargo-platform` does not make use of serde derive macros, thus it can depend on `serde_core` instead of `serde` to speed up users' compile times. See the documentation of [`serde_core`](https://docs.rs/serde_core) for more details. --- Cargo.lock | 25 ++++++++++++++++++------- Cargo.toml | 3 ++- crates/cargo-platform/Cargo.toml | 7 ++++++- crates/cargo-platform/src/lib.rs | 10 +++++----- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 95fae292ede..57afbf755c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -331,7 +331,7 @@ dependencies = [ "cargo-credential-libsecret", "cargo-credential-macos-keychain", "cargo-credential-wincred", - "cargo-platform 0.3.1", + "cargo-platform 0.3.2", "cargo-test-support", "cargo-util", "cargo-util-schemas 0.10.2", @@ -461,9 +461,10 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.3.1" +version = "0.3.2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -3710,7 +3711,7 @@ name = "resolver-tests" version = "0.0.0" dependencies = [ "cargo", - "cargo-platform 0.3.1", + "cargo-platform 0.3.2", "cargo-util", "cargo-util-schemas 0.10.2", "proptest", @@ -3970,10 +3971,11 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" dependencies = [ + "serde_core", "serde_derive", ] @@ -3998,11 +4000,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 132360db883..367e64b2988 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -89,7 +89,8 @@ same-file = "1.0.6" schemars = "1.0.4" security-framework = "3.3.0" semver = { version = "1.0.26", features = ["serde"] } -serde = "1.0.219" +serde = "1.0.220" +serde_core = "1.0.220" serde-untagged = "0.1.7" serde-value = "0.7.0" serde_ignored = "0.1.12" diff --git a/crates/cargo-platform/Cargo.toml b/crates/cargo-platform/Cargo.toml index 48f1387d532..f2a530dda7a 100644 --- a/crates/cargo-platform/Cargo.toml +++ b/crates/cargo-platform/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-platform" -version = "0.3.1" +version = "0.3.2" edition.workspace = true license.workspace = true rust-version.workspace = true @@ -10,6 +10,11 @@ documentation = "https://docs.rs/cargo-platform" description = "Cargo's representation of a target platform." [dependencies] +serde_core.workspace = true + +# serde v1.0.220 is the first version that released with `serde_core`. +# This is required to avoid conflict with other `serde` users which may require an older version. +[target.'cfg(any())'.dependencies] serde.workspace = true [lints] diff --git a/crates/cargo-platform/src/lib.rs b/crates/cargo-platform/src/lib.rs index 96b2485775a..9585e2ef25d 100644 --- a/crates/cargo-platform/src/lib.rs +++ b/crates/cargo-platform/src/lib.rs @@ -140,22 +140,22 @@ impl Platform { } } -impl serde::Serialize for Platform { +impl serde_core::Serialize for Platform { fn serialize(&self, s: S) -> Result where - S: serde::Serializer, + S: serde_core::Serializer, { self.to_string().serialize(s) } } -impl<'de> serde::Deserialize<'de> for Platform { +impl<'de> serde_core::Deserialize<'de> for Platform { fn deserialize(deserializer: D) -> Result where - D: serde::Deserializer<'de>, + D: serde_core::Deserializer<'de>, { let s = String::deserialize(deserializer)?; - FromStr::from_str(&s).map_err(serde::de::Error::custom) + FromStr::from_str(&s).map_err(serde_core::de::Error::custom) } }