Skip to content

Commit 5dc1d6a

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 f33f4d9 commit 5dc1d6a

File tree

4 files changed

+18
-12
lines changed

4 files changed

+18
-12
lines changed

Cargo.toml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ equivalent = { version = "1.0", default-features = false }
1818

1919
arbitrary = { version = "1.0", optional = true, default-features = false }
2020
quickcheck = { version = "1.0", optional = true, default-features = false }
21-
serde = { version = "1.0", optional = true, default-features = false }
21+
serde_core = { version = "1.0.220", optional = true, default-features = false }
2222
rayon = { version = "1.9", optional = true }
2323
sval = { version = "2", optional = true, default-features = false }
2424

@@ -29,16 +29,22 @@ borsh = { version = "1.2", optional = true, default-features = false }
2929
version = "0.15.0"
3030
default-features = false
3131

32+
# serde v1.0.220 is the first version that released with `serde_core`.
33+
# This is required to avoid conflict with other `serde` users which may require an older version.
34+
[target.'cfg(any())'.dependencies]
35+
serde = { version = "1.0.220", default-features = false }
36+
3237
[dev-dependencies]
3338
itertools = "0.14"
3439
fastrand = { version = "2", default-features = false }
3540
quickcheck = { version = "1.0", default-features = false }
3641
fnv = "1.0"
37-
serde_derive = "1.0"
42+
serde = { version = "1.0", default-features = false, features = ["derive"] }
3843

3944
[features]
4045
default = ["std"]
4146
std = []
47+
serde = ["dep:serde_core"]
4248

4349
# for testing only, of course
4450
test_debug = []

src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@
4949
//!
5050
//! [feature flags]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-features-section
5151
//! [`no_std`]: #no-standard-library-targets
52-
//! [`Serialize`]: `::serde::Serialize`
53-
//! [`Deserialize`]: `::serde::Deserialize`
52+
//! [`Serialize`]: `::serde_core::Serialize`
53+
//! [`Deserialize`]: `::serde_core::Deserialize`
5454
//! [`BorshSerialize`]: `::borsh::BorshSerialize`
5555
//! [`BorshDeserialize`]: `::borsh::BorshDeserialize`
5656
//! [`borsh`]: `::borsh`

src/map/serde_seq.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
//!
1010
//! ```
1111
//! # use indexmap::IndexMap;
12-
//! # use serde_derive::{Deserialize, Serialize};
12+
//! # use serde::{Deserialize, Serialize};
1313
//! #[derive(Deserialize, Serialize)]
1414
//! struct Data {
1515
//! #[serde(with = "indexmap::map::serde_seq")]
@@ -18,8 +18,8 @@
1818
//! }
1919
//! ```
2020
21-
use serde::de::{Deserialize, Deserializer, SeqAccess, Visitor};
22-
use serde::ser::{Serialize, Serializer};
21+
use serde_core::de::{Deserialize, Deserializer, SeqAccess, Visitor};
22+
use serde_core::ser::{Serialize, Serializer};
2323

2424
use core::fmt::{self, Formatter};
2525
use core::hash::{BuildHasher, Hash};
@@ -66,7 +66,7 @@ where
6666
///
6767
/// ```
6868
/// # use indexmap::IndexMap;
69-
/// # use serde_derive::Serialize;
69+
/// # use serde::Serialize;
7070
/// #[derive(Serialize)]
7171
/// struct Data {
7272
/// #[serde(serialize_with = "indexmap::map::serde_seq::serialize")]
@@ -119,7 +119,7 @@ where
119119
///
120120
/// ```
121121
/// # use indexmap::IndexMap;
122-
/// # use serde_derive::Deserialize;
122+
/// # use serde::Deserialize;
123123
/// #[derive(Deserialize)]
124124
/// struct Data {
125125
/// #[serde(deserialize_with = "indexmap::map::serde_seq::deserialize")]

src/serde.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#![cfg_attr(docsrs, doc(cfg(feature = "serde")))]
22

3-
use serde::de::value::{MapDeserializer, SeqDeserializer};
4-
use serde::de::{
3+
use serde_core::de::value::{MapDeserializer, SeqDeserializer};
4+
use serde_core::de::{
55
Deserialize, Deserializer, Error, IntoDeserializer, MapAccess, SeqAccess, Visitor,
66
};
7-
use serde::ser::{Serialize, Serializer};
7+
use serde_core::ser::{Serialize, Serializer};
88

99
use core::fmt::{self, Formatter};
1010
use core::hash::{BuildHasher, Hash};

0 commit comments

Comments
 (0)