bde/ser/
mod.rs

1use serde::ser::Serialize;
2
3use crate::Result;
4
5pub(crate) mod map_key_serializer;
6mod map_serializer;
7mod serializer;
8mod unsorted_serializer;
9
10pub use serializer::Serializer;
11pub use unsorted_serializer::UnsortedSerializer;
12
13pub fn to_writer_unsorted<W, T>(writer: W, value: &T) -> Result<()>
14where
15    W: std::io::Write,
16    T: ?Sized + Serialize,
17{
18    let mut ser = UnsortedSerializer::new(writer);
19    value.serialize(&mut ser)
20}
21
22pub fn to_bytes_unsorted<T>(value: &T) -> Result<Vec<u8>>
23where
24    T: ?Sized + Serialize,
25{
26    let mut writer = Vec::with_capacity(128);
27    to_writer_unsorted(&mut writer, value)?;
28    Ok(writer)
29}
30
31pub fn to_writer<W, T>(writer: W, value: &T) -> Result<()>
32where
33    W: std::io::Write,
34    T: ?Sized + Serialize,
35{
36    let mut ser = Serializer::new(writer);
37    value.serialize(&mut ser)
38}
39
40pub fn to_bytes<T>(value: &T) -> Result<Vec<u8>>
41where
42    T: ?Sized + Serialize,
43{
44    let mut writer = Vec::with_capacity(128);
45    to_writer(&mut writer, value)?;
46    Ok(writer)
47}