Skip to content

Commit f1ad08b

Browse files
authored
Remove serde implementation from TimelyStack (#645)
Removes the serde implementation for TimelyStack. I have very low confidence it is correct, and it is inefficient, too. Nobody should rely on it. Signed-off-by: Moritz Hoffmann <[email protected]>
1 parent 8f15860 commit f1ad08b

File tree

1 file changed

+0
-70
lines changed

1 file changed

+0
-70
lines changed

container/src/columnation.rs

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -263,76 +263,6 @@ impl<T: Columnation> PushInto<&&T> for TimelyStack<T> {
263263
}
264264
}
265265

266-
mod serde {
267-
use serde::{Deserialize, Deserializer, Serialize, Serializer};
268-
269-
use crate::columnation::{Columnation, TimelyStack};
270-
271-
impl<T: Columnation + Serialize> Serialize for TimelyStack<T> {
272-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
273-
where
274-
S: Serializer,
275-
{
276-
use serde::ser::SerializeSeq;
277-
let mut seq = serializer.serialize_seq(Some(self.local.len()))?;
278-
for element in &self[..] {
279-
seq.serialize_element(element)?;
280-
}
281-
seq.end()
282-
}
283-
}
284-
285-
impl<'a, T: Columnation + Deserialize<'a>> Deserialize<'a> for TimelyStack<T> {
286-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
287-
where
288-
D: Deserializer<'a>,
289-
{
290-
use serde::de::{SeqAccess, Visitor};
291-
use std::fmt;
292-
use std::marker::PhantomData;
293-
struct TimelyStackVisitor<T> {
294-
marker: PhantomData<T>,
295-
}
296-
297-
impl<'de, T: Columnation> Visitor<'de> for TimelyStackVisitor<T>
298-
where
299-
T: Deserialize<'de>,
300-
{
301-
type Value = TimelyStack<T>;
302-
303-
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
304-
formatter.write_str("a sequence")
305-
}
306-
307-
fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
308-
where
309-
A: SeqAccess<'de>,
310-
{
311-
let local = Vec::with_capacity(
312-
seq.size_hint()
313-
.unwrap_or(crate::buffer::default_capacity::<T>()),
314-
);
315-
let mut stack = TimelyStack {
316-
local,
317-
inner: T::InnerRegion::default(),
318-
};
319-
320-
while let Some(value) = seq.next_element()? {
321-
stack.copy(&value);
322-
}
323-
324-
Ok(stack)
325-
}
326-
}
327-
328-
let visitor = TimelyStackVisitor {
329-
marker: PhantomData,
330-
};
331-
deserializer.deserialize_seq(visitor)
332-
}
333-
}
334-
}
335-
336266
mod container {
337267
use std::ops::Deref;
338268
use crate::{Container, SizableContainer};

0 commit comments

Comments
 (0)