brioche_ducc_serde/
lib.rs

1extern crate ducc;
2#[macro_use]
3extern crate serde;
4
5pub mod error;
6pub mod ser;
7pub mod de;
8
9pub use error::{Error, Result};
10pub use ser::Serializer;
11
12use ducc::{Ducc, Value, Result as DuccResult};
13
14pub fn to_value<T: serde::Serialize>(ducc: &Ducc, value: T) -> DuccResult<Value> {
15    let serializer = ser::Serializer { ducc };
16    Ok(value.serialize(serializer)?)
17}
18
19pub fn from_value<'de, T: serde::Deserialize<'de>>(value: Value<'de>) -> DuccResult<T> {
20    let deserializer = de::Deserializer { value };
21    Ok(T::deserialize(deserializer)?)
22}