rustc_serialize: specialize opaque encoding of some u8 sequences
This commit is contained in:
@@ -11,12 +11,8 @@ use smallvec::{Array, SmallVec};
|
||||
|
||||
impl<S: Encoder, A: Array<Item: Encodable<S>>> Encodable<S> for SmallVec<A> {
|
||||
fn encode(&self, s: &mut S) -> Result<(), S::Error> {
|
||||
s.emit_seq(self.len(), |s| {
|
||||
for (i, e) in self.iter().enumerate() {
|
||||
s.emit_seq_elt(i, |s| e.encode(s))?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
let slice: &[A::Item] = self;
|
||||
slice.encode(s)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,12 +288,8 @@ where
|
||||
|
||||
impl<E: Encoder, T: Encodable<E>> Encodable<E> for Rc<[T]> {
|
||||
fn encode(&self, s: &mut E) -> Result<(), E::Error> {
|
||||
s.emit_seq(self.len(), |s| {
|
||||
for (index, e) in self.iter().enumerate() {
|
||||
s.emit_seq_elt(index, |s| e.encode(s))?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
let slice: &[T] = self;
|
||||
slice.encode(s)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -315,12 +307,8 @@ impl<D: Decoder, T: Decodable<D>> Decodable<D> for Rc<[T]> {
|
||||
|
||||
impl<E: Encoder, T: Encodable<E>> Encodable<E> for Arc<[T]> {
|
||||
fn encode(&self, s: &mut E) -> Result<(), E::Error> {
|
||||
s.emit_seq(self.len(), |s| {
|
||||
for (index, e) in self.iter().enumerate() {
|
||||
s.emit_seq_elt(index, |s| e.encode(s))?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
let slice: &[T] = self;
|
||||
slice.encode(s)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user