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
31
32
33
34
35
use std::io::{Cursor, Write};
use serde;
use error::ResultE;
#[macro_use]
mod serializer_defaults;
mod bundle_serializer;
mod pkt_serializer;
mod pkt_type_decoder;
mod osc_writer;
mod msg_serializer;
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())
}