flesh out serde2::json

This commit is contained in:
Erick Tryzelaar
2014-12-06 08:02:34 -08:00
parent e5ddf759de
commit 6caf7b8e0b
5 changed files with 490 additions and 95 deletions
+14 -6
View File
@@ -1,6 +1,5 @@
use std::f64;
use std::io::IoError;
use std::io;
use std::io::{mod, ByRefWriter, IoError};
use std::num::{Float, FPNaN, FPInfinite};
use ser;
@@ -230,14 +229,23 @@ fn fmt_f64_or_null<W: io::Writer>(wr: &mut W, value: f64) -> Result<(), IoError>
}
}
#[inline]
pub fn to_writer<
W: io::Writer,
T: ser::Serialize,
>(wr: &mut W, value: &T) -> Result<(), IoError> {
let mut wr = Writer::new(wr.by_ref());
try!(wr.visit(value));
Ok(())
}
#[inline]
pub fn to_vec<
T: ser::Serialize,
>(value: &T) -> Result<Vec<u8>, IoError> {
let writer = Vec::with_capacity(128);
let mut writer = Writer::new(writer);
try!(writer.visit(value));
Ok(writer.into_inner())
let mut wr = Vec::with_capacity(128);
to_writer(&mut wr, value).unwrap();
Ok(wr)
}
#[inline]