diff --git a/container/src/columnation.rs b/container/src/columnation.rs index e83b3ed3a..459eeeb81 100644 --- a/container/src/columnation.rs +++ b/container/src/columnation.rs @@ -263,76 +263,6 @@ impl PushInto<&&T> for TimelyStack { } } -mod serde { - use serde::{Deserialize, Deserializer, Serialize, Serializer}; - - use crate::columnation::{Columnation, TimelyStack}; - - impl Serialize for TimelyStack { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - use serde::ser::SerializeSeq; - let mut seq = serializer.serialize_seq(Some(self.local.len()))?; - for element in &self[..] { - seq.serialize_element(element)?; - } - seq.end() - } - } - - impl<'a, T: Columnation + Deserialize<'a>> Deserialize<'a> for TimelyStack { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'a>, - { - use serde::de::{SeqAccess, Visitor}; - use std::fmt; - use std::marker::PhantomData; - struct TimelyStackVisitor { - marker: PhantomData, - } - - impl<'de, T: Columnation> Visitor<'de> for TimelyStackVisitor - where - T: Deserialize<'de>, - { - type Value = TimelyStack; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str("a sequence") - } - - fn visit_seq(self, mut seq: A) -> Result - where - A: SeqAccess<'de>, - { - let local = Vec::with_capacity( - seq.size_hint() - .unwrap_or(crate::buffer::default_capacity::()), - ); - let mut stack = TimelyStack { - local, - inner: T::InnerRegion::default(), - }; - - while let Some(value) = seq.next_element()? { - stack.copy(&value); - } - - Ok(stack) - } - } - - let visitor = TimelyStackVisitor { - marker: PhantomData, - }; - deserializer.deserialize_seq(visitor) - } - } -} - mod container { use std::ops::Deref; use crate::{Container, SizableContainer};