about summary refs log tree commit diff
path: root/src/libserialize
diff options
context:
space:
mode:
authorOliver 'ker' Schneider <rust19446194516@oli-obk.de>2015-01-10 10:13:11 +0100
committerOliver Schneider <git1984941651981@oli-obk.de>2015-01-19 14:22:17 +0100
commita320149dcce2eb27d3014113cbf87aacc04d24eb (patch)
tree30d6e774c468374501ce1dda0134570b11724fdd /src/libserialize
parent0478a8c1d73ab936bcfb762ce8f31ab9f642f462 (diff)
downloadrust-a320149dcce2eb27d3014113cbf87aacc04d24eb.tar.gz
rust-a320149dcce2eb27d3014113cbf87aacc04d24eb.zip
ugly hack to convert BadHashMapKey error to general fmt::Error
Diffstat (limited to 'src/libserialize')
-rw-r--r--src/libserialize/json.rs25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/libserialize/json.rs b/src/libserialize/json.rs
index 0364d9544b1..77e1ebc5ef3 100644
--- a/src/libserialize/json.rs
+++ b/src/libserialize/json.rs
@@ -2512,7 +2512,10 @@ struct FormatShim<'a, 'b: 'a> {
 
 impl<'a, 'b> fmt::Writer for FormatShim<'a, 'b> {
     fn write_str(&mut self, s: &str) -> fmt::Result {
-        self.inner.write_str(s)
+        match self.inner.write_str(s) {
+            Ok(_) => Ok(()),
+            Err(_) => Err(fmt::Error)
+        }
     }
 }
 
@@ -2521,7 +2524,10 @@ impl fmt::String for Json {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         let mut shim = FormatShim { inner: f };
         let mut encoder = Encoder::new(&mut shim);
-        self.encode(&mut encoder)
+        match self.encode(&mut encoder) {
+            Ok(_) => Ok(()),
+            Err(_) => Err(fmt::Error)
+        }
     }
 }
 
@@ -2530,7 +2536,10 @@ impl<'a> fmt::String for PrettyJson<'a> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         let mut shim = FormatShim { inner: f };
         let mut encoder = PrettyEncoder::new(&mut shim);
-        self.inner.encode(&mut encoder)
+        match self.inner.encode(&mut encoder) {
+            Ok(_) => Ok(()),
+            Err(_) => Err(fmt::Error)
+        }
     }
 }
 
@@ -2539,7 +2548,10 @@ impl<'a, T: Encodable> fmt::String for AsJson<'a, T> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         let mut shim = FormatShim { inner: f };
         let mut encoder = Encoder::new(&mut shim);
-        self.inner.encode(&mut encoder)
+        match self.inner.encode(&mut encoder) {
+            Ok(_) => Ok(()),
+            Err(_) => Err(fmt::Error)
+        }
     }
 }
 
@@ -2560,7 +2572,10 @@ impl<'a, T: Encodable> fmt::String for AsPrettyJson<'a, T> {
             Some(n) => encoder.set_indent(n),
             None => {}
         }
-        self.inner.encode(&mut encoder)
+        match self.inner.encode(&mut encoder) {
+            Ok(_) => Ok(()),
+            Err(_) => Err(fmt::Error)
+        }
     }
 }