Skip to content

Commit e5a03d5

Browse files
committed
Depend on serde_core instead of serde
This crate 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.
1 parent 158fdd5 commit e5a03d5

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

Cargo.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ foldhash = { version = "0.2.0", default-features = false, optional = true }
1818

1919
# For external trait impls
2020
rayon = { version = "1.2", optional = true }
21-
serde = { version = "1.0.25", default-features = false, optional = true }
21+
serde_core = { version = "1.0.221", default-features = false, optional = true }
2222

2323
# When built as part of libstd
2424
core = { version = "1.0.0", optional = true, package = "rustc-std-workspace-core" }
@@ -33,6 +33,11 @@ allocator-api2 = { version = "0.2.9", optional = true, default-features = false,
3333
# NB: this is a public dependency because `Equivalent` is re-exported!
3434
equivalent = { version = "1.0", optional = true, default-features = false }
3535

36+
# serde v1.0.220 is the first version that released with `serde_core`.
37+
# This is required to avoid conflict with other `serde` users which may require an older version.
38+
[target.'cfg(any())'.dependencies]
39+
serde = { version = "1.0.220", default-features = false, optional = true }
40+
3641
[dev-dependencies]
3742
lazy_static = "1.4"
3843
rand = { version = "0.9.0", features = ["small_rng"] }
@@ -60,6 +65,9 @@ rustc-dep-of-std = [
6065
"rustc-internal-api",
6166
]
6267

68+
# Enables serde support.
69+
serde = ["dep:serde_core", "dep:serde"]
70+
6371
# Enables the deprecated RawEntry API.
6472
raw-entry = []
6573

src/external_trait_impls/serde.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ mod map {
1515
use core::fmt;
1616
use core::hash::{BuildHasher, Hash};
1717
use core::marker::PhantomData;
18-
use serde::de::{Deserialize, Deserializer, MapAccess, Visitor};
19-
use serde::ser::{Serialize, Serializer};
18+
use serde_core::de::{Deserialize, Deserializer, MapAccess, Visitor};
19+
use serde_core::ser::{Serialize, Serializer};
2020

2121
use crate::hash_map::HashMap;
2222

@@ -101,8 +101,8 @@ mod set {
101101
use core::fmt;
102102
use core::hash::{BuildHasher, Hash};
103103
use core::marker::PhantomData;
104-
use serde::de::{Deserialize, Deserializer, SeqAccess, Visitor};
105-
use serde::ser::{Serialize, Serializer};
104+
use serde_core::de::{Deserialize, Deserializer, SeqAccess, Visitor};
105+
use serde_core::ser::{Serialize, Serializer};
106106

107107
use crate::hash_set::HashSet;
108108

0 commit comments

Comments
 (0)