humidity_core/serde/
mod.rs1pub use de::Deserializer;
4pub use ser::Serializer;
5
6mod de;
7mod ser;
8
9#[derive(Debug, PartialEq)]
11pub enum Error {
12 ErrBufferSmall,
13 Other,
14}
15
16pub trait Serializable
17where
18 Self: Sized,
19{
20 fn serialize(&self, ser: &mut Serializer) -> Result<usize, Error>;
21}
22
23pub trait Deserializable
24where
25 Self: Sized,
26{
27 fn deserialize(de: &mut Deserializer) -> Result<Self, Error>;
28}
29
30pub fn serialize<T>(value: &T, out: &mut [u8]) -> Result<usize, Error>
31where
32 T: Serializable,
33{
34 let mut se = Serializer::new(out);
35 value.serialize(&mut se)
36}
37
38pub fn deserialize<T>(out: &[u8]) -> Result<T, Error>
39where
40 T: Deserializable,
41{
42 let mut de = Deserializer::new(out);
43 T::deserialize(&mut de)
44}