DeserializeWith

Trait DeserializeWith 

Source
pub trait DeserializeWith<'de, T> {
    // Required method
    fn deserialize_with<D>(deserializer: D) -> Result<T, D::Error>
       where D: Deserializer<'de>;
}
Expand description

Trait for types that can be used as deserialization adapters with #[serde(with = ...)]

This is the foundation to build composable deserialization adapters.

Required Methods§

Source

fn deserialize_with<D>(deserializer: D) -> Result<T, D::Error>
where D: Deserializer<'de>,

Deserializes a value using deserializer

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<'de> DeserializeWith<'de, ()> for ()

Source§

fn deserialize_with<D>(deserializer: D) -> Result<(), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0> DeserializeWith<'de, (T0,)> for (A0,)
where A0: DeserializeWith<'de, T0>,

Source§

fn deserialize_with<D>(deserializer: D) -> Result<(T0,), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0, T1, A1> DeserializeWith<'de, (T0, T1)> for (A0, A1)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>,

Source§

fn deserialize_with<D>(deserializer: D) -> Result<(T0, T1), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2> DeserializeWith<'de, (T0, T1, T2)> for (A0, A1, A2)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>,

Source§

fn deserialize_with<D>(deserializer: D) -> Result<(T0, T1, T2), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3> DeserializeWith<'de, (T0, T1, T2, T3)> for (A0, A1, A2, A3)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>,

Source§

fn deserialize_with<D>(deserializer: D) -> Result<(T0, T1, T2, T3), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4> DeserializeWith<'de, (T0, T1, T2, T3, T4)> for (A0, A1, A2, A3, A4)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>,

Source§

fn deserialize_with<D>( deserializer: D, ) -> Result<(T0, T1, T2, T3, T4), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5)> for (A0, A1, A2, A3, A4, A5)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>,

Source§

fn deserialize_with<D>( deserializer: D, ) -> Result<(T0, T1, T2, T3, T4, T5), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6)> for (A0, A1, A2, A3, A4, A5, A6)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>,

Source§

fn deserialize_with<D>( deserializer: D, ) -> Result<(T0, T1, T2, T3, T4, T5, T6), D::Error>
where D: Deserializer<'de>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7)> for (A0, A1, A2, A3, A4, A5, A6, A7)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>, A9: DeserializeWith<'de, T9>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>, A9: DeserializeWith<'de, T9>, A10: DeserializeWith<'de, T10>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10, T11, A11> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>, A9: DeserializeWith<'de, T9>, A10: DeserializeWith<'de, T10>, A11: DeserializeWith<'de, T11>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10, T11, A11, T12, A12> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>, A9: DeserializeWith<'de, T9>, A10: DeserializeWith<'de, T10>, A11: DeserializeWith<'de, T11>, A12: DeserializeWith<'de, T12>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10, T11, A11, T12, A12, T13, A13> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>, A9: DeserializeWith<'de, T9>, A10: DeserializeWith<'de, T10>, A11: DeserializeWith<'de, T11>, A12: DeserializeWith<'de, T12>, A13: DeserializeWith<'de, T13>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10, T11, A11, T12, A12, T13, A13, T14, A14> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>, A9: DeserializeWith<'de, T9>, A10: DeserializeWith<'de, T10>, A11: DeserializeWith<'de, T11>, A12: DeserializeWith<'de, T12>, A13: DeserializeWith<'de, T13>, A14: DeserializeWith<'de, T14>,

Source§

impl<'de, T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10, T11, A11, T12, A12, T13, A13, T14, A14, T15, A15> DeserializeWith<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> for (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)
where A0: DeserializeWith<'de, T0>, A1: DeserializeWith<'de, T1>, A2: DeserializeWith<'de, T2>, A3: DeserializeWith<'de, T3>, A4: DeserializeWith<'de, T4>, A5: DeserializeWith<'de, T5>, A6: DeserializeWith<'de, T6>, A7: DeserializeWith<'de, T7>, A8: DeserializeWith<'de, T8>, A9: DeserializeWith<'de, T9>, A10: DeserializeWith<'de, T10>, A11: DeserializeWith<'de, T11>, A12: DeserializeWith<'de, T12>, A13: DeserializeWith<'de, T13>, A14: DeserializeWith<'de, T14>, A15: DeserializeWith<'de, T15>,

Implementors§

Source§

impl<'de> DeserializeWith<'de, Box<[u8]>> for Bytes

Source§

impl<'de> DeserializeWith<'de, Rc<[u8]>> for Bytes

Source§

impl<'de> DeserializeWith<'de, Arc<[u8]>> for Bytes

Source§

impl<'de> DeserializeWith<'de, Vec<u8>> for Bytes

Source§

impl<'de, 'a, F, T> DeserializeWith<'de, Cow<'a, T>> for Cow<F>
where F: DeserializeWith<'de, T::Owned>, T: ToOwned,

Source§

impl<'de, F, C> DeserializeWith<'de, C> for Seq<F>
where F: DeserializeWith<'de, C::Item>, C: IntoIterator + FromIterator<C::Item>,

Source§

impl<'de, F, G, C, K, V> DeserializeWith<'de, C> for Map<F, G>
where F: DeserializeWith<'de, K>, G: DeserializeWith<'de, V>, C: IntoIterator<Item = (K, V)> + FromIterator<(K, V)>,

Source§

impl<'de, F, G, C, K, V> DeserializeWith<'de, C> for MapAsSeq<F, G>
where F: DeserializeWith<'de, K>, G: DeserializeWith<'de, V>, C: IntoIterator<Item = (K, V)> + FromIterator<(K, V)>,

Source§

impl<'de, F, G, C, K, V> DeserializeWith<'de, C> for SeqAsMap<F, G>
where F: DeserializeWith<'de, K>, G: DeserializeWith<'de, V>, C: IntoIterator<Item = (K, V)> + FromIterator<(K, V)>,

Source§

impl<'de, F, G, T> DeserializeWith<'de, T> for Codec<F, G>
where G: DeserializeWith<'de, T>,

Source§

impl<'de, F, G, T> DeserializeWith<'de, T> for HumanOr<F, G>
where F: DeserializeWith<'de, T>, G: DeserializeWith<'de, T>,

Source§

impl<'de, F, G, T, E> DeserializeWith<'de, Result<T, E>> for Result<F, G>
where F: DeserializeWith<'de, T>, G: DeserializeWith<'de, E>,

Source§

impl<'de, F, T> DeserializeWith<'de, Bound<T>> for Range<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, Option<T>> for Option<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, Cell<T>> for Cell<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, RefCell<T>> for Cell<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, Reverse<T>> for Reverse<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, Wrapping<T>> for Wrapping<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, Range<T>> for Range<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, RangeFrom<T>> for Range<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, RangeInclusive<T>> for Range<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, RangeTo<T>> for Range<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, RangeToInclusive<T>> for Range<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, Mutex<T>> for Mutex<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, RwLock<T>> for RwLock<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de, F, T> DeserializeWith<'de, T> for Ptr<F>
where F: DeserializeWith<'de, T::Target>, T: Deref + From<T::Target>, T::Target: Sized,

Source§

impl<'de, T> DeserializeWith<'de, T> for ByteVec
where T: TryFrom<Vec<u8>>, T::Error: Display,

Source§

impl<'de, T> DeserializeWith<'de, T> for Id
where T: Deserialize<'de>,

Source§

impl<'de, T> DeserializeWith<'de, T> for Str
where T: FromStr, T::Err: Display,

Source§

impl<'de, T, A, F> DeserializeWith<'de, A> for Fold<T, A, F>
where F: DeserializeWith<'de, T>, A: Default + Add<T, Output = A>,

Source§

impl<'de, T, U, F> DeserializeWith<'de, U> for From<T, F>
where U: From<T>, F: DeserializeWith<'de, T>,

Source§

impl<'de, T, U, F> DeserializeWith<'de, U> for TryFrom<T, F>
where U: TryFrom<T>, U::Error: Display, F: DeserializeWith<'de, T>,

Source§

impl<'de, const N: usize> DeserializeWith<'de, [u8; N]> for Bytes

Source§

impl<'de, const N: usize, F, T> DeserializeWith<'de, [T; N]> for Array<F>
where F: DeserializeWith<'de, T>,

Source§

impl<'de: 'a, 'a> DeserializeWith<'de, &'a [u8]> for Bytes

Source§

impl<'de: 'a, 'a> DeserializeWith<'de, Cow<'a, [u8]>> for Bytes

Source§

impl<'de: 'a, 'a, const N: usize> DeserializeWith<'de, &'a [u8; N]> for Bytes