diff --git a/serde/src/ser/mod.rs b/serde/src/ser/mod.rs index e06eaefd..a06a6dce 100644 --- a/serde/src/ser/mod.rs +++ b/serde/src/ser/mod.rs @@ -510,12 +510,41 @@ pub trait Serializer: Sized { /// not be computable before the sequence is iterated. Some serializers only /// support sequences whose length is known up front. /// - /// ```rust,ignore - /// let mut seq = serializer.serialize_seq(Some(self.len()))?; - /// for element in self { - /// seq.serialize_element(element)?; + /// ```rust + /// # use std::marker::PhantomData; + /// # + /// # struct Vec(PhantomData); + /// # + /// # impl Vec { + /// # fn len(&self) -> usize { + /// # unimplemented!() + /// # } + /// # } + /// # + /// # impl<'a, T> IntoIterator for &'a Vec { + /// # type Item = &'a T; + /// # type IntoIter = Box>; + /// # fn into_iter(self) -> Self::IntoIter { + /// # unimplemented!() + /// # } + /// # } + /// # + /// # use serde::{Serialize, Serializer}; + /// # use serde::ser::SerializeSeq; + /// # + /// impl Serialize for Vec + /// where T: Serialize + /// { + /// fn serialize(&self, serializer: S) -> Result + /// where S: Serializer + /// { + /// let mut seq = serializer.serialize_seq(Some(self.len()))?; + /// for element in self { + /// seq.serialize_element(element)?; + /// } + /// seq.end() + /// } /// } - /// seq.end() /// ``` fn serialize_seq(self, len: Option) -> Result;