Skip to content

Commit f4a7f52

Browse files
committed
Switch to serde_core dependency to improve downstream build parallelism.
1 parent b43c682 commit f4a7f52

File tree

5 files changed

+94
-80
lines changed

5 files changed

+94
-80
lines changed

Cargo.lock

Lines changed: 16 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ authors = ["Adam Reichold <[email protected]>"]
77
license = "MIT OR Apache-2.0"
88
repository = "https://github.com/adamreichold/serde-mincode"
99
documentation = "https://docs.rs/serde-mincode"
10-
version = "0.1.4"
10+
version = "0.1.5"
1111
edition = "2021"
1212

1313
[dependencies]
14-
serde = { version = "1.0", default-features = false, features = ["std"] }
14+
serde_core = "1.0"

src/de.rs

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
use std::mem::size_of;
22
use std::str::from_utf8;
33

4+
use serde_core::de::{
5+
DeserializeSeed, Deserializer, EnumAccess, IntoDeserializer, MapAccess, SeqAccess,
6+
VariantAccess, Visitor,
7+
};
8+
49
use super::Error;
510

611
pub struct Decoder<'de> {
@@ -60,7 +65,7 @@ macro_rules! impl_deserialize {
6065
($method:ident: $decode:ident => $visit:ident) => {
6166
fn $method<V>(self, visitor: V) -> Result<V::Value, Self::Error>
6267
where
63-
V: serde::de::Visitor<'de>,
68+
V: Visitor<'de>,
6469
{
6570
let value = self.$decode()?;
6671

@@ -69,26 +74,26 @@ macro_rules! impl_deserialize {
6974
};
7075
}
7176

72-
impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
77+
impl<'de> Deserializer<'de> for &mut Decoder<'de> {
7378
type Error = Box<Error>;
7479

7580
fn deserialize_any<V>(self, _visitor: V) -> Result<V::Value, Self::Error>
7681
where
77-
V: serde::de::Visitor<'de>,
82+
V: Visitor<'de>,
7883
{
7984
Error::NotSupported.into()
8085
}
8186

8287
fn deserialize_ignored_any<V>(self, _visitor: V) -> Result<V::Value, Self::Error>
8388
where
84-
V: serde::de::Visitor<'de>,
89+
V: Visitor<'de>,
8590
{
8691
Error::NotSupported.into()
8792
}
8893

8994
fn deserialize_identifier<V>(self, _visitor: V) -> Result<V::Value, Self::Error>
9095
where
91-
V: serde::de::Visitor<'de>,
96+
V: Visitor<'de>,
9297
{
9398
Error::NotSupported.into()
9499
}
@@ -110,7 +115,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
110115

111116
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>
112117
where
113-
V: serde::de::Visitor<'de>,
118+
V: Visitor<'de>,
114119
{
115120
match self.decode_u8()? {
116121
0 => visitor.visit_bool(false),
@@ -121,7 +126,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
121126

122127
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error>
123128
where
124-
V: serde::de::Visitor<'de>,
129+
V: Visitor<'de>,
125130
{
126131
let bits = self.decode_u32()?;
127132

@@ -134,7 +139,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
134139

135140
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error>
136141
where
137-
V: serde::de::Visitor<'de>,
142+
V: Visitor<'de>,
138143
{
139144
let bytes = self.decode_bytes()?;
140145

@@ -143,7 +148,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
143148

144149
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error>
145150
where
146-
V: serde::de::Visitor<'de>,
151+
V: Visitor<'de>,
147152
{
148153
let bytes = self.decode_bytes()?;
149154

@@ -152,7 +157,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
152157

153158
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error>
154159
where
155-
V: serde::de::Visitor<'de>,
160+
V: Visitor<'de>,
156161
{
157162
let bytes = self.decode_bytes()?;
158163

@@ -165,7 +170,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
165170

166171
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error>
167172
where
168-
V: serde::de::Visitor<'de>,
173+
V: Visitor<'de>,
169174
{
170175
let bytes = self.decode_bytes()?;
171176

@@ -178,7 +183,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
178183

179184
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error>
180185
where
181-
V: serde::de::Visitor<'de>,
186+
V: Visitor<'de>,
182187
{
183188
visitor.visit_unit()
184189
}
@@ -189,7 +194,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
189194
visitor: V,
190195
) -> Result<V::Value, Self::Error>
191196
where
192-
V: serde::de::Visitor<'de>,
197+
V: Visitor<'de>,
193198
{
194199
visitor.visit_unit()
195200
}
@@ -200,14 +205,14 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
200205
visitor: V,
201206
) -> Result<V::Value, Self::Error>
202207
where
203-
V: serde::de::Visitor<'de>,
208+
V: Visitor<'de>,
204209
{
205210
visitor.visit_newtype_struct(self)
206211
}
207212

208213
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error>
209214
where
210-
V: serde::de::Visitor<'de>,
215+
V: Visitor<'de>,
211216
{
212217
match self.decode_u8()? {
213218
0 => visitor.visit_none(),
@@ -218,7 +223,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
218223

219224
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error>
220225
where
221-
V: serde::de::Visitor<'de>,
226+
V: Visitor<'de>,
222227
{
223228
let len = self.decode_u32()?;
224229

@@ -227,7 +232,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
227232

228233
fn deserialize_tuple<V>(self, len: usize, visitor: V) -> Result<V::Value, Self::Error>
229234
where
230-
V: serde::de::Visitor<'de>,
235+
V: Visitor<'de>,
231236
{
232237
visitor.visit_seq(LimitedDecoder { this: self, len })
233238
}
@@ -239,14 +244,14 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
239244
visitor: V,
240245
) -> Result<V::Value, Self::Error>
241246
where
242-
V: serde::de::Visitor<'de>,
247+
V: Visitor<'de>,
243248
{
244249
self.deserialize_tuple(len, visitor)
245250
}
246251

247252
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error>
248253
where
249-
V: serde::de::Visitor<'de>,
254+
V: Visitor<'de>,
250255
{
251256
let len = self.decode_u32()?;
252257

@@ -263,7 +268,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
263268
visitor: V,
264269
) -> Result<V::Value, Self::Error>
265270
where
266-
V: serde::de::Visitor<'de>,
271+
V: Visitor<'de>,
267272
{
268273
self.deserialize_tuple(fields.len(), visitor)
269274
}
@@ -275,7 +280,7 @@ impl<'de> serde::de::Deserializer<'de> for &mut Decoder<'de> {
275280
visitor: V,
276281
) -> Result<V::Value, Self::Error>
277282
where
278-
V: serde::de::Visitor<'de>,
283+
V: Visitor<'de>,
279284
{
280285
visitor.visit_enum(self)
281286
}
@@ -290,12 +295,12 @@ struct LimitedDecoder<'a, 'de> {
290295
len: usize,
291296
}
292297

293-
impl<'de> serde::de::SeqAccess<'de> for LimitedDecoder<'_, 'de> {
298+
impl<'de> SeqAccess<'de> for LimitedDecoder<'_, 'de> {
294299
type Error = Box<Error>;
295300

296301
fn next_element_seed<T>(&mut self, seed: T) -> Result<Option<T::Value>, Self::Error>
297302
where
298-
T: serde::de::DeserializeSeed<'de>,
303+
T: DeserializeSeed<'de>,
299304
{
300305
match self.len.checked_sub(1) {
301306
Some(len) => {
@@ -314,12 +319,12 @@ impl<'de> serde::de::SeqAccess<'de> for LimitedDecoder<'_, 'de> {
314319
}
315320
}
316321

317-
impl<'de> serde::de::MapAccess<'de> for LimitedDecoder<'_, 'de> {
322+
impl<'de> MapAccess<'de> for LimitedDecoder<'_, 'de> {
318323
type Error = Box<Error>;
319324

320325
fn next_key_seed<T>(&mut self, seed: T) -> Result<Option<T::Value>, Self::Error>
321326
where
322-
T: serde::de::DeserializeSeed<'de>,
327+
T: DeserializeSeed<'de>,
323328
{
324329
match self.len.checked_sub(1) {
325330
Some(len) => {
@@ -335,7 +340,7 @@ impl<'de> serde::de::MapAccess<'de> for LimitedDecoder<'_, 'de> {
335340

336341
fn next_value_seed<V>(&mut self, seed: V) -> Result<V::Value, Self::Error>
337342
where
338-
V: serde::de::DeserializeSeed<'de>,
343+
V: DeserializeSeed<'de>,
339344
{
340345
seed.deserialize(&mut *self.this)
341346
}
@@ -345,26 +350,25 @@ impl<'de> serde::de::MapAccess<'de> for LimitedDecoder<'_, 'de> {
345350
}
346351
}
347352

348-
impl<'de> serde::de::EnumAccess<'de> for &mut Decoder<'de> {
353+
impl<'de> EnumAccess<'de> for &mut Decoder<'de> {
349354
type Error = Box<Error>;
350355
type Variant = Self;
351356

352357
fn variant_seed<V>(self, seed: V) -> Result<(V::Value, Self::Variant), Self::Error>
353358
where
354-
V: serde::de::DeserializeSeed<'de>,
359+
V: DeserializeSeed<'de>,
355360
{
356361
let variant_index = self.decode_u32()?;
357362

358-
let deserializer =
359-
serde::de::IntoDeserializer::<Self::Error>::into_deserializer(variant_index);
363+
let deserializer = IntoDeserializer::<Self::Error>::into_deserializer(variant_index);
360364

361365
let value = seed.deserialize(deserializer)?;
362366

363367
Ok((value, self))
364368
}
365369
}
366370

367-
impl<'de> serde::de::VariantAccess<'de> for &mut Decoder<'de> {
371+
impl<'de> VariantAccess<'de> for &mut Decoder<'de> {
368372
type Error = Box<Error>;
369373

370374
fn unit_variant(self) -> Result<(), Self::Error> {
@@ -373,16 +377,16 @@ impl<'de> serde::de::VariantAccess<'de> for &mut Decoder<'de> {
373377

374378
fn newtype_variant_seed<T>(self, seed: T) -> Result<T::Value, Self::Error>
375379
where
376-
T: serde::de::DeserializeSeed<'de>,
380+
T: DeserializeSeed<'de>,
377381
{
378382
seed.deserialize(self)
379383
}
380384

381385
fn tuple_variant<V>(self, len: usize, visitor: V) -> Result<V::Value, Self::Error>
382386
where
383-
V: serde::de::Visitor<'de>,
387+
V: Visitor<'de>,
384388
{
385-
serde::de::Deserializer::deserialize_tuple(self, len, visitor)
389+
Deserializer::deserialize_tuple(self, len, visitor)
386390
}
387391

388392
fn struct_variant<V>(
@@ -391,8 +395,8 @@ impl<'de> serde::de::VariantAccess<'de> for &mut Decoder<'de> {
391395
visitor: V,
392396
) -> Result<V::Value, Self::Error>
393397
where
394-
V: serde::de::Visitor<'de>,
398+
V: Visitor<'de>,
395399
{
396-
serde::de::Deserializer::deserialize_tuple(self, fields.len(), visitor)
400+
Deserializer::deserialize_tuple(self, fields.len(), visitor)
397401
}
398402
}

0 commit comments

Comments
 (0)