Trait miniconf::TreeDeserialize

source ·
pub trait TreeDeserialize<'de, const Y: usize = 1>: TreeKey<Y> {
    // Required method
    fn deserialize_by_key<K, D>(
        &mut self,
        keys: K,
        de: D
    ) -> Result<usize, Error<D::Error>>
       where K: Keys,
             D: Deserializer<'de>;
}
Expand description

Deserialize a leaf node by its keys.

See also crate::JsonCoreSlash for a convenient blanket implementation using this trait.

§Derive macro

crate::TreeDeserialize derives TreeSerialize for structs with named fields and tuple structs. The field attributes are described in the TreeKey trait.

Required Methods§

source

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

Deserialize a leaf node by its keys.

use miniconf::{TreeDeserialize, TreeKey};
#[derive(Default, TreeKey, TreeDeserialize)]
struct S {
    foo: u32,
    #[tree(depth=1)]
    bar: [u16; 2],
};
let mut s = S::default();
let mut de = serde_json_core::de::Deserializer::new(b"7");
s.deserialize_by_key(["bar", "0"].into_iter(), &mut de).unwrap();
de.end().unwrap();
assert_eq!(s.bar[0], 7);
§Args
  • keys: An Iterator of Keys identifying the node.
  • de: A Deserializer to deserialize the value.
§Returns

Node depth on success

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'de, T: Deserialize<'de>> TreeDeserialize<'de> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: Deserialize<'de>, const N: usize> TreeDeserialize<'de> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 2> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 3> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 4> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 5> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 6> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 7> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 8> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 9> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 10> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 11> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 12> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 13> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 14> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 15> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>> TreeDeserialize<'de, 16> for Option<T>

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 2> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 3> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 4> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 5> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 6> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 7> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 8> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 9> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 10> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 11> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 12> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 13> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 14> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 15> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

source§

impl<'de, T: TreeDeserialize<'de, { _ }>, const N: usize> TreeDeserialize<'de, 16> for [T; N]

source§

fn deserialize_by_key<K, D>( &mut self, keys: K, de: D ) -> Result<usize, Error<D::Error>>
where K: Keys, D: Deserializer<'de>,

Implementors§