about summary refs log tree commit diff
path: root/src/libserialize/serialize.rs
diff options
context:
space:
mode:
authorHerman J. Radtke III <hermanradtke@gmail.com>2014-04-30 15:55:04 -0700
committerHerman J. Radtke III <hermanradtke@gmail.com>2014-04-30 23:49:00 -0700
commitfa6efedccf63c283d7b0916c304ee456d20ab97e (patch)
treec859c212960edac73a248fe39d4b489f3fd57a7d /src/libserialize/serialize.rs
parent9f484e616e8731c3fd9346460a71156ddba454b4 (diff)
downloadrust-fa6efedccf63c283d7b0916c304ee456d20ab97e.tar.gz
rust-fa6efedccf63c283d7b0916c304ee456d20ab97e.zip
Add serialization support for StrBuf
- implement Encodable and Decodable for StrBuf
- implement to_json for StrBuf
Diffstat (limited to 'src/libserialize/serialize.rs')
-rw-r--r--src/libserialize/serialize.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libserialize/serialize.rs b/src/libserialize/serialize.rs
index d82d45e89a2..9801a243efa 100644
--- a/src/libserialize/serialize.rs
+++ b/src/libserialize/serialize.rs
@@ -313,6 +313,18 @@ impl<E, D:Decoder<E>> Decodable<D, E> for ~str {
     }
 }
 
+impl<E, S:Encoder<E>> Encodable<S, E> for StrBuf {
+    fn encode(&self, s: &mut S) -> Result<(), E> {
+        s.emit_str(self.as_slice())
+    }
+}
+
+impl<E, D:Decoder<E>> Decodable<D, E> for StrBuf {
+    fn decode(d: &mut D) -> Result<StrBuf, E> {
+        Ok(StrBuf::from_str(try!(d.read_str())))
+    }
+}
+
 impl<E, S:Encoder<E>> Encodable<S, E> for f32 {
     fn encode(&self, s: &mut S) -> Result<(), E> {
         s.emit_f32(*self)