Trait TreeSerialize

Source
pub trait TreeSerialize: TreeSchema {
    // Required method
    fn serialize_by_key<S: Serializer>(
        &self,
        keys: impl Keys,
        ser: S,
    ) -> Result<S::Ok, SerdeError<S::Error>>;
}
Expand description

Serialize a leaf node by its keys.

See also crate::json_core or crate::postcard for convenient wrappers using this trait.

§Derive macro

See crate::TreeSerialize. The derive macro attributes are described in the TreeSchema trait.

Required Methods§

Source

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Serialize a node by keys.

use miniconf::{IntoKeys, TreeSchema, TreeSerialize};
#[derive(TreeSchema, TreeSerialize)]
struct S {
    foo: u32,
    bar: [u16; 2],
};
let s = S {
    foo: 9,
    bar: [11, 3],
};
let mut buf = [0u8; 10];
let mut ser = serde_json_core::ser::Serializer::new(&mut buf);
s.serialize_by_key(["bar", "0"].into_keys(), &mut ser).unwrap();
let len = ser.end();
assert_eq!(&buf[..len], b"11");
§Args
  • keys: A Keys identifying the node.
  • ser: A Serializer to to serialize the value.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl TreeSerialize for SocketAddr

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for bool

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for char

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for f32

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for f64

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for i8

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for i16

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for i32

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for i64

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for i128

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for isize

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for str

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for u8

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for u16

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for u32

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for u64

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for u128

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for ()

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for usize

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for SocketAddrV4

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for SocketAddrV6

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for Duration

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl TreeSerialize for [u8]

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize> TreeSerialize for (T0,)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize, T1: TreeSerialize> TreeSerialize for (T0, T1)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize, T1: TreeSerialize, T2: TreeSerialize> TreeSerialize for (T0, T1, T2)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize, T1: TreeSerialize, T2: TreeSerialize, T3: TreeSerialize> TreeSerialize for (T0, T1, T2, T3)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize, T1: TreeSerialize, T2: TreeSerialize, T3: TreeSerialize, T4: TreeSerialize> TreeSerialize for (T0, T1, T2, T3, T4)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize, T1: TreeSerialize, T2: TreeSerialize, T3: TreeSerialize, T4: TreeSerialize, T5: TreeSerialize> TreeSerialize for (T0, T1, T2, T3, T4, T5)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize, T1: TreeSerialize, T2: TreeSerialize, T3: TreeSerialize, T4: TreeSerialize, T5: TreeSerialize, T6: TreeSerialize> TreeSerialize for (T0, T1, T2, T3, T4, T5, T6)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T0: TreeSerialize, T1: TreeSerialize, T2: TreeSerialize, T3: TreeSerialize, T4: TreeSerialize, T5: TreeSerialize, T6: TreeSerialize, T7: TreeSerialize> TreeSerialize for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: Serialize, const N: usize> TreeSerialize for Vec<T, N>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize + Copy> TreeSerialize for Cell<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize + ?Sized> TreeSerialize for &T

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize + ?Sized> TreeSerialize for &mut T

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for Bound<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for Option<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for RefCell<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for Wrapping<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for Range<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for RangeFrom<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for RangeInclusive<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize> TreeSerialize for RangeTo<T>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize, E: TreeSerialize> TreeSerialize for Result<T, E>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<T: TreeSerialize, const N: usize> TreeSerialize for [T; N]
where Self: TreeSchema,

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Source§

impl<const N: usize> TreeSerialize for String<N>

Source§

fn serialize_by_key<S: Serializer>( &self, keys: impl Keys, ser: S, ) -> Result<S::Ok, SerdeError<S::Error>>

Implementors§