Skip to content

Commit a320149

Browse files
Oliver 'ker' SchneiderOliver Schneider
Oliver 'ker' Schneider
authored and
Oliver Schneider
committed
ugly hack to convert BadHashMapKey error to general fmt::Error
1 parent 0478a8c commit a320149

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

src/libserialize/json.rs

+20-5
Original file line numberDiff line numberDiff line change
@@ -2512,7 +2512,10 @@ struct FormatShim<'a, 'b: 'a> {
25122512

25132513
impl<'a, 'b> fmt::Writer for FormatShim<'a, 'b> {
25142514
fn write_str(&mut self, s: &str) -> fmt::Result {
2515-
self.inner.write_str(s)
2515+
match self.inner.write_str(s) {
2516+
Ok(_) => Ok(()),
2517+
Err(_) => Err(fmt::Error)
2518+
}
25162519
}
25172520
}
25182521

@@ -2521,7 +2524,10 @@ impl fmt::String for Json {
25212524
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
25222525
let mut shim = FormatShim { inner: f };
25232526
let mut encoder = Encoder::new(&mut shim);
2524-
self.encode(&mut encoder)
2527+
match self.encode(&mut encoder) {
2528+
Ok(_) => Ok(()),
2529+
Err(_) => Err(fmt::Error)
2530+
}
25252531
}
25262532
}
25272533

@@ -2530,7 +2536,10 @@ impl<'a> fmt::String for PrettyJson<'a> {
25302536
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
25312537
let mut shim = FormatShim { inner: f };
25322538
let mut encoder = PrettyEncoder::new(&mut shim);
2533-
self.inner.encode(&mut encoder)
2539+
match self.inner.encode(&mut encoder) {
2540+
Ok(_) => Ok(()),
2541+
Err(_) => Err(fmt::Error)
2542+
}
25342543
}
25352544
}
25362545

@@ -2539,7 +2548,10 @@ impl<'a, T: Encodable> fmt::String for AsJson<'a, T> {
25392548
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
25402549
let mut shim = FormatShim { inner: f };
25412550
let mut encoder = Encoder::new(&mut shim);
2542-
self.inner.encode(&mut encoder)
2551+
match self.inner.encode(&mut encoder) {
2552+
Ok(_) => Ok(()),
2553+
Err(_) => Err(fmt::Error)
2554+
}
25432555
}
25442556
}
25452557

@@ -2560,7 +2572,10 @@ impl<'a, T: Encodable> fmt::String for AsPrettyJson<'a, T> {
25602572
Some(n) => encoder.set_indent(n),
25612573
None => {}
25622574
}
2563-
self.inner.encode(&mut encoder)
2575+
match self.inner.encode(&mut encoder) {
2576+
Ok(_) => Ok(()),
2577+
Err(_) => Err(fmt::Error)
2578+
}
25642579
}
25652580
}
25662581

0 commit comments

Comments
 (0)