refactor(serde): Minor serde micro-optimizations
This commit is contained in:
		| @@ -332,33 +332,10 @@ impl fmt::Debug for Headers { | |||||||
| #[cfg(feature = "serde-serialization")] | #[cfg(feature = "serde-serialization")] | ||||||
| impl Serialize for Headers { | impl Serialize for Headers { | ||||||
|     fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error> where S: Serializer { |     fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error> where S: Serializer { | ||||||
|         struct HeadersVisitor<'a> { |         serializer.visit_map(ser::impls::MapIteratorVisitor::new( | ||||||
|             iter: HeadersItems<'a>, |             self.iter().map(|header| (header.name(), header.value_string())), | ||||||
|             len: usize, |             Some(self.len()), | ||||||
|         } |         )) | ||||||
|  |  | ||||||
|         impl<'a> ser::MapVisitor for HeadersVisitor<'a> { |  | ||||||
|             fn visit<S>(&mut self, serializer: &mut S) -> Result<Option<()>, S::Error> |  | ||||||
|                         where S: Serializer { |  | ||||||
|                 match self.iter.next() { |  | ||||||
|                     Some(header_item) => { |  | ||||||
|                         try!(serializer.visit_map_elt(header_item.name(), |  | ||||||
|                                                       header_item.value_string())); |  | ||||||
|                         Ok(Some(())) |  | ||||||
|                     } |  | ||||||
|                     None => Ok(None), |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             fn len(&self) -> Option<usize> { |  | ||||||
|                 Some(self.len) |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         serializer.visit_map(HeadersVisitor { |  | ||||||
|             iter: self.iter(), |  | ||||||
|             len: self.len(), |  | ||||||
|         }) |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ pub struct RawStatus(pub u16, pub Cow<'static, str>); | |||||||
| #[cfg(feature = "serde-serialization")] | #[cfg(feature = "serde-serialization")] | ||||||
| impl Serialize for RawStatus { | impl Serialize for RawStatus { | ||||||
|     fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error> where S: Serializer { |     fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error> where S: Serializer { | ||||||
|         (self.0, self.1.clone().into_owned()).serialize(serializer) |         (self.0, &self.1).serialize(serializer) | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user