Skip to content

Commit 8a7b634

Browse files
committed
WIP: Turbopack: Remove remaining dead implementations of serde traits
1 parent 37fb52c commit 8a7b634

File tree

30 files changed

+43
-300
lines changed

30 files changed

+43
-300
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,6 @@ rstest = "0.16.0"
446446
rustc-hash = "2.1.1"
447447
semver = "1.0.16"
448448
serde = { version = "1.0.217", features = ["derive"] }
449-
serde_bytes = "0.11.15"
450449
serde_json = "1.0.138"
451450
serde_path_to_error = "0.1.16"
452451
serde_qs = "0.13.0"

turbopack/crates/turbo-esregex/Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ anyhow = { workspace = true }
99
bincode = { workspace = true }
1010
regex = { workspace = true }
1111
regress = { workspace = true }
12-
serde = { workspace = true }
13-
serde_json = { workspace = true }
1412
turbo-tasks = { workspace = true }
1513

16-
1714
[lints]
1815
workspace = true

turbopack/crates/turbo-esregex/src/lib.rs

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ use bincode::{
1010
error::{DecodeError, EncodeError},
1111
impl_borrow_decode,
1212
};
13-
use serde::{Deserialize, Serialize};
1413

1514
/// A simple regular expression implementation following ecmascript semantics
1615
///
1716
/// Delegates to the `regex` crate when possible and `regress` otherwise.
18-
#[derive(Debug, Clone, Serialize, Deserialize)]
17+
#[derive(Debug, Clone)]
1918
#[turbo_tasks::value(eq = "manual", shared, serialization = "custom")]
20-
#[serde(into = "RegexForm", try_from = "RegexForm")]
2119
pub struct EsRegex {
2220
#[turbo_tasks(trace_ignore)]
2321
delegate: EsRegexImpl,
@@ -44,30 +42,6 @@ impl PartialEq for EsRegex {
4442
}
4543
impl Eq for EsRegex {}
4644

47-
impl TryFrom<RegexForm> for EsRegex {
48-
type Error = anyhow::Error;
49-
50-
fn try_from(value: RegexForm) -> std::result::Result<Self, Self::Error> {
51-
EsRegex::new(&value.pattern, &value.flags)
52-
}
53-
}
54-
55-
/// This is the serializable form for the `EsRegex` struct
56-
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone)]
57-
struct RegexForm {
58-
pattern: String,
59-
flags: String,
60-
}
61-
62-
impl From<EsRegex> for RegexForm {
63-
fn from(value: EsRegex) -> Self {
64-
Self {
65-
pattern: value.pattern,
66-
flags: value.flags,
67-
}
68-
}
69-
}
70-
7145
impl Encode for EsRegex {
7246
fn encode<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError> {
7347
self.pattern.encode(encoder)?;
@@ -235,11 +209,13 @@ mod tests {
235209
use super::{EsRegex, EsRegexImpl};
236210

237211
#[test]
238-
fn round_trip_serialize() {
212+
fn round_trip_bincode() {
239213
let regex = EsRegex::new("[a-z]", "i").unwrap();
240-
let serialized = serde_json::to_string(&regex).unwrap();
241-
let parsed = serde_json::from_str::<EsRegex>(&serialized).unwrap();
242-
assert_eq!(regex, parsed);
214+
let config = bincode::config::standard();
215+
let encoded = bincode::encode_to_vec(&regex, config).unwrap();
216+
let (decoded, len) = bincode::decode_from_slice::<EsRegex, _>(&encoded, config).unwrap();
217+
assert_eq!(regex, decoded);
218+
assert_eq!(len, encoded.len());
243219
}
244220

245221
#[test]

turbopack/crates/turbo-tasks-bytes/Cargo.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,4 @@ bincode = { workspace = true }
1717
bytes = { workspace = true }
1818
futures = { workspace = true }
1919
serde = { workspace = true }
20-
serde_bytes = "0.11.9"
2120
turbo-tasks = { workspace = true }
22-
23-
[dev-dependencies]
24-
serde_test = "1.0.157"

turbopack/crates/turbo-tasks-bytes/src/bytes.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ use bincode::{
1212
impl_borrow_decode,
1313
};
1414
use bytes::Bytes as CBytes;
15-
use serde::{Deserialize, Deserializer, Serialize, Serializer};
1615

1716
/// Bytes is a thin wrapper around [bytes::Bytes], implementing easy
1817
/// conversion to/from, ser/de support, and Vc containers.
@@ -26,19 +25,6 @@ impl Bytes {
2625
}
2726
}
2827

29-
impl Serialize for Bytes {
30-
fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31-
serde_bytes::Bytes::new(&self.0).serialize(serializer)
32-
}
33-
}
34-
35-
impl<'de> Deserialize<'de> for Bytes {
36-
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
37-
let bytes = serde_bytes::ByteBuf::deserialize(deserializer)?;
38-
Ok(Bytes(bytes.into_vec().into()))
39-
}
40-
}
41-
4228
impl Encode for Bytes {
4329
fn encode<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError> {
4430
self[..].encode(encoder)
@@ -92,10 +78,8 @@ impl From<Bytes> for CBytes {
9278

9379
#[cfg(test)]
9480
mod tests {
95-
use bytes::Bytes as CBytes;
96-
use serde_test::{Token, assert_tokens};
81+
use super::*;
9782

98-
use super::Bytes;
9983
impl PartialEq<&str> for Bytes {
10084
fn eq(&self, other: &&str) -> bool {
10185
self.0 == other
@@ -112,12 +96,6 @@ mod tests {
11296
assert_eq!(Bytes::from(s), "foo");
11397
}
11498

115-
#[test]
116-
fn serde() {
117-
let s = Bytes::from("test");
118-
assert_tokens(&s, &[Token::Bytes(b"test")])
119-
}
120-
12199
#[test]
122100
fn bincode() {
123101
let s = Bytes::from("test");

turbopack/crates/turbo-tasks-bytes/src/stream.rs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ use bincode::{
1313
error::{DecodeError, EncodeError},
1414
};
1515
use futures::{Stream as StreamTrait, StreamExt, TryStreamExt};
16-
use serde::{Deserialize, Deserializer, Serialize, Serializer};
1716

1817
/// Streams allow for streaming values from source to sink.
1918
///
@@ -153,27 +152,6 @@ impl<T: Clone + PartialEq + Send> PartialEq for Stream<T> {
153152
}
154153
impl<T: Clone + Eq + Send> Eq for Stream<T> {}
155154

156-
impl<T: Clone + Serialize + Send> Serialize for Stream<T> {
157-
fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
158-
use serde::ser::Error;
159-
let lock = self.inner.lock().map_err(Error::custom)?;
160-
match &*lock {
161-
StreamState {
162-
pulled,
163-
source: None,
164-
} => pulled.serialize(serializer),
165-
_ => Err(Error::custom("cannot serialize open stream")),
166-
}
167-
}
168-
}
169-
170-
impl<'de, T: Clone + Send + Deserialize<'de>> Deserialize<'de> for Stream<T> {
171-
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
172-
let data = <Vec<T>>::deserialize(deserializer)?;
173-
Ok(Stream::new_closed(data))
174-
}
175-
}
176-
177155
impl<T: Clone + Encode + Send> Encode for Stream<T> {
178156
fn encode<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError> {
179157
let lock = self

turbopack/crates/turbo-tasks-fs/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ parking_lot = { workspace = true }
4141
regex = { workspace = true }
4242
rustc-hash = { workspace = true }
4343
serde = { workspace = true, features = ["rc"] }
44-
serde_bytes = { workspace = true }
4544
serde_json = { workspace = true }
4645
serde_path_to_error = { workspace = true }
4746
tokio = { workspace = true }

turbopack/crates/turbo-tasks-fs/src/rope.rs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ use bincode::{
2020
};
2121
use bytes::Bytes;
2222
use futures::Stream;
23-
use serde::{Deserialize, Deserializer, Serialize, Serializer};
24-
use serde_bytes::ByteBuf;
2523
use tokio::io::{AsyncRead, ReadBuf};
2624
use triomphe::Arc;
2725
use turbo_tasks_hash::{DeterministicHash, DeterministicHasher};
@@ -393,27 +391,6 @@ impl DeterministicHash for Rope {
393391
}
394392
}
395393

396-
impl Serialize for Rope {
397-
/// Ropes are always serialized into contiguous strings, because
398-
/// deserialization won't deduplicate and share the Arcs (being the only
399-
/// possible owner of a individual "shared" data doesn't make sense).
400-
fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
401-
let bytes = self.to_bytes();
402-
match bytes {
403-
Cow::Borrowed(b) => serde_bytes::Bytes::new(b).serialize(serializer),
404-
Cow::Owned(b) => ByteBuf::from(b).serialize(serializer),
405-
}
406-
}
407-
}
408-
409-
impl<'de> Deserialize<'de> for Rope {
410-
/// Deserializes strings into a contiguous, immutable Rope.
411-
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
412-
let bytes = ByteBuf::deserialize(deserializer)?.into_vec();
413-
Ok(Rope::from(bytes))
414-
}
415-
}
416-
417394
/// Encode as a len + raw bytes format using the encoder's [`bincode::enc::write::Writer`]. Encoding
418395
/// [`Rope::to_bytes`] instead would be easier, but would require copying to an intermediate buffer.
419396
///

turbopack/crates/turbo-tasks/src/state.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@ use std::{
88
use auto_hash_map::AutoSet;
99
use bincode::{Decode, Encode};
1010
use parking_lot::{Mutex, MutexGuard};
11-
use serde::{Deserialize, Serialize};
1211
use tracing::trace_span;
1312

1413
use crate::{
1514
Invalidator, OperationValue, SerializationInvalidator, get_invalidator, mark_session_dependent,
1615
mark_stateful, trace::TraceRawVcs,
1716
};
1817

19-
#[derive(Serialize, Deserialize, Encode, Decode)]
18+
#[derive(Encode, Decode)]
2019
struct StateInner<T> {
2120
value: T,
2221
invalidators: AutoSet<Invalidator>,
@@ -161,7 +160,7 @@ mod parking_lot_mutex_bincode {
161160
/// [strong consistency]: crate::OperationVc::read_strongly_consistent
162161
/// [`OperationVc`]: crate::OperationVc
163162
/// [`OperationValue`]: crate::OperationValue
164-
#[derive(Serialize, Deserialize, Encode, Decode)]
163+
#[derive(Encode, Decode)]
165164
pub struct State<T> {
166165
serialization_invalidator: SerializationInvalidator,
167166
#[bincode(with = "parking_lot_mutex_bincode")]
@@ -272,10 +271,9 @@ impl<T: PartialEq> State<T> {
272271
}
273272
}
274273

275-
#[derive(Serialize, Deserialize, Encode, Decode)]
274+
#[derive(Encode, Decode)]
276275
#[bincode(bounds = "")]
277276
pub struct TransientState<T> {
278-
#[serde(skip, default = "default_transient_state_inner")]
279277
#[bincode(skip, default = "default_transient_state_inner")]
280278
inner: Mutex<StateInner<Option<T>>>,
281279
}

0 commit comments

Comments
 (0)