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
use std::io::{Cursor, Write}; use serde; use error::ResultE; #[macro_use] mod serializer_defaults; mod pkt_serializer; mod pkt_type_decoder; mod osc_writer; mod timetag_ser; pub use self::pkt_serializer::PktSerializer as Serializer; pub fn to_write<S: ?Sized, W: Write>(write: &mut W, value: &S) -> ResultE<()> where W: Write, S: serde::ser::Serialize { let mut ser = Serializer::new(write.by_ref()); value.serialize(&mut ser) } pub fn to_vec<T: ?Sized>(value: &T) -> ResultE<Vec<u8>> where T: serde::ser::Serialize { let mut output = Cursor::new(Vec::new()); to_write(&mut output, value)?; Ok(output.into_inner()) }