From f582150159865b62b84b8a54d298af4c1b87800d Mon Sep 17 00:00:00 2001 From: Kevin Ballard Date: Thu, 8 May 2014 11:50:35 -0700 Subject: [PATCH] Restore Decodable impl for ~[T] Bring back the Decodable impl for ~[T], this time using FromVec. It's still not recommended that anyone use this, but at least it's available if necessary. --- src/libserialize/serialize.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/libserialize/serialize.rs b/src/libserialize/serialize.rs index 90385d7cce9..7914dd8c7d2 100644 --- a/src/libserialize/serialize.rs +++ b/src/libserialize/serialize.rs @@ -451,6 +451,21 @@ impl,T:Encodable> Encodable for ~[T] { } } +impl,T:Decodable> Decodable for ~[T] { + fn decode(d: &mut D) -> Result<~[T], E> { + use std::vec::FromVec; + + d.read_seq(|d, len| { + let mut v: Vec = Vec::with_capacity(len); + for i in range(0, len) { + v.push(try!(d.read_seq_elt(i, |d| Decodable::decode(d)))); + } + let k: ~[T] = FromVec::from_vec(v); + Ok(k) + }) + } +} + impl,T:Encodable> Encodable for Vec { fn encode(&self, s: &mut S) -> Result<(), E> { s.emit_seq(self.len(), |s| {