1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
extern crate byteorder;
extern crate num_traits;

extern crate serde;
use serde::{Serialize, Deserialize};

mod ser;
use ser::Serializer;
mod de;
use de::Deserializer;
mod error;
pub use error::{Error, Result};

use std::io::{Write, Read};

pub fn serialize<W: ?Sized, T>(writer: &mut W, value: &T) -> Result<()>
    where W: Write,
          T: Serialize
{
    let mut ser = Serializer::new(writer);
    Serialize::serialize(value, &mut ser)
}

pub fn deserialize<R, T>(reader: R) -> Result<T>
    where R: Read,
          T: Deserialize
{
    let mut de = Deserializer::new(reader);
    Deserialize::deserialize(&mut de)
}