SerializeWith

Trait SerializeWith 

Source
pub trait SerializeWith<T: ?Sized> {
    // Required method
    fn serialize_with<S: Serializer>(
        value: &T,
        serializer: S,
    ) -> Result<S::Ok, S::Error>;
}
Expand description

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

This is the foundation to build composable serialization adapters.

Required Methods§

Source

fn serialize_with<S: Serializer>( value: &T, serializer: S, ) -> Result<S::Ok, S::Error>

Serializes value using serializer

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 SerializeWith<()> for ()

Source§

fn serialize_with<S: Serializer>( value: &(), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

impl<F, T> SerializeWith<&T> for &F
where F: SerializeWith<T>, T: ?Sized,

Source§

fn serialize_with<S: Serializer>( value: &&T, serializer: S, ) -> Result<S::Ok, S::Error>

Source§

impl<F, T> SerializeWith<&mut T> for &F
where F: SerializeWith<T>, T: ?Sized,

Source§

fn serialize_with<S: Serializer>( value: &&mut T, serializer: S, ) -> Result<S::Ok, S::Error>

Source§

impl<T0, A0> SerializeWith<(T0,)> for (A0,)
where A0: SerializeWith<T0>,

Source§

fn serialize_with<S: Serializer>( value: &(T0,), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

impl<T0, A0, T1, A1> SerializeWith<(T0, T1)> for (A0, A1)
where A0: SerializeWith<T0>, A1: SerializeWith<T1>,

Source§

fn serialize_with<S: Serializer>( value: &(T0, T1), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

impl<T0, A0, T1, A1, T2, A2> SerializeWith<(T0, T1, T2)> for (A0, A1, A2)
where A0: SerializeWith<T0>, A1: SerializeWith<T1>, A2: SerializeWith<T2>,

Source§

fn serialize_with<S: Serializer>( value: &(T0, T1, T2), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

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

Source§

fn serialize_with<S: Serializer>( value: &(T0, T1, T2, T3), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

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

Source§

fn serialize_with<S: Serializer>( value: &(T0, T1, T2, T3, T4), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

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

Source§

fn serialize_with<S: Serializer>( value: &(T0, T1, T2, T3, T4, T5), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

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

Source§

fn serialize_with<S: Serializer>( value: &(T0, T1, T2, T3, T4, T5, T6), serializer: S, ) -> Result<S::Ok, S::Error>

Source§

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

Source§

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

Source§

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

Source§

impl<T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10> SerializeWith<(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: SerializeWith<T0>, A1: SerializeWith<T1>, A2: SerializeWith<T2>, A3: SerializeWith<T3>, A4: SerializeWith<T4>, A5: SerializeWith<T5>, A6: SerializeWith<T6>, A7: SerializeWith<T7>, A8: SerializeWith<T8>, A9: SerializeWith<T9>, A10: SerializeWith<T10>,

Source§

impl<T0, A0, T1, A1, T2, A2, T3, A3, T4, A4, T5, A5, T6, A6, T7, A7, T8, A8, T9, A9, T10, A10, T11, A11> SerializeWith<(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: SerializeWith<T0>, A1: SerializeWith<T1>, A2: SerializeWith<T2>, A3: SerializeWith<T3>, A4: SerializeWith<T4>, A5: SerializeWith<T5>, A6: SerializeWith<T6>, A7: SerializeWith<T7>, A8: SerializeWith<T8>, A9: SerializeWith<T9>, A10: SerializeWith<T10>, A11: SerializeWith<T11>,

Source§

impl<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> SerializeWith<(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: SerializeWith<T0>, A1: SerializeWith<T1>, A2: SerializeWith<T2>, A3: SerializeWith<T3>, A4: SerializeWith<T4>, A5: SerializeWith<T5>, A6: SerializeWith<T6>, A7: SerializeWith<T7>, A8: SerializeWith<T8>, A9: SerializeWith<T9>, A10: SerializeWith<T10>, A11: SerializeWith<T11>, A12: SerializeWith<T12>,

Source§

impl<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> SerializeWith<(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: SerializeWith<T0>, A1: SerializeWith<T1>, A2: SerializeWith<T2>, A3: SerializeWith<T3>, A4: SerializeWith<T4>, A5: SerializeWith<T5>, A6: SerializeWith<T6>, A7: SerializeWith<T7>, A8: SerializeWith<T8>, A9: SerializeWith<T9>, A10: SerializeWith<T10>, A11: SerializeWith<T11>, A12: SerializeWith<T12>, A13: SerializeWith<T13>,

Source§

impl<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> SerializeWith<(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: SerializeWith<T0>, A1: SerializeWith<T1>, A2: SerializeWith<T2>, A3: SerializeWith<T3>, A4: SerializeWith<T4>, A5: SerializeWith<T5>, A6: SerializeWith<T6>, A7: SerializeWith<T7>, A8: SerializeWith<T8>, A9: SerializeWith<T9>, A10: SerializeWith<T10>, A11: SerializeWith<T11>, A12: SerializeWith<T12>, A13: SerializeWith<T13>, A14: SerializeWith<T14>,

Source§

impl<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> SerializeWith<(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: SerializeWith<T0>, A1: SerializeWith<T1>, A2: SerializeWith<T2>, A3: SerializeWith<T3>, A4: SerializeWith<T4>, A5: SerializeWith<T5>, A6: SerializeWith<T6>, A7: SerializeWith<T7>, A8: SerializeWith<T8>, A9: SerializeWith<T9>, A10: SerializeWith<T10>, A11: SerializeWith<T11>, A12: SerializeWith<T12>, A13: SerializeWith<T13>, A14: SerializeWith<T14>, A15: SerializeWith<T15>,

Implementors§

Source§

impl<'a, F, T> SerializeWith<Cow<'a, T>> for Cow<F>
where F: SerializeWith<T>, T: ToOwned + ?Sized,

Source§

impl<F, C, T> SerializeWith<C> for Seq<F>
where F: SerializeWith<T>, C: ?Sized, for<'a> &'a C: IntoIterator<Item = &'a T>,

Source§

impl<F, G, C, K, V> SerializeWith<C> for Map<F, G>
where F: SerializeWith<K>, G: SerializeWith<V>, C: ?Sized, for<'a> &'a C: IntoIterator<Item = (&'a K, &'a V)>,

Source§

impl<F, G, C, K, V> SerializeWith<C> for MapAsSeq<F, G>
where F: SerializeWith<K>, G: SerializeWith<V>, C: ?Sized, for<'a> &'a C: IntoIterator<Item = (&'a K, &'a V)>,

Source§

impl<F, G, C, K, V> SerializeWith<C> for SeqAsMap<F, G>
where F: SerializeWith<K>, G: SerializeWith<V>, C: ?Sized, for<'a> &'a C: IntoIterator<Item = &'a (K, V)>,

Source§

impl<F, G, T> SerializeWith<T> for Codec<F, G>
where F: SerializeWith<T>, T: ?Sized,

Source§

impl<F, G, T> SerializeWith<T> for HumanOr<F, G>
where F: SerializeWith<T>, G: SerializeWith<T>, T: ?Sized,

Source§

impl<F, G, T, E> SerializeWith<Result<T, E>> for Result<F, G>
where F: SerializeWith<T>, G: SerializeWith<E>,

Source§

impl<F, T> SerializeWith<Bound<T>> for Range<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<Option<T>> for Option<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<Cell<T>> for Cell<F>
where F: SerializeWith<T>, T: Copy,

Source§

impl<F, T> SerializeWith<RefCell<T>> for Cell<F>
where F: SerializeWith<T>, T: ?Sized,

Source§

impl<F, T> SerializeWith<Reverse<T>> for Reverse<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<Wrapping<T>> for Wrapping<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<Range<T>> for Range<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<RangeFrom<T>> for Range<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<RangeInclusive<T>> for Range<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<RangeTo<T>> for Range<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<RangeToInclusive<T>> for Range<F>
where F: SerializeWith<T>,

Source§

impl<F, T> SerializeWith<Mutex<T>> for Mutex<F>
where F: SerializeWith<T>, T: ?Sized,

Source§

impl<F, T> SerializeWith<RwLock<T>> for RwLock<F>
where F: SerializeWith<T>, T: ?Sized,

Source§

impl<F, T> SerializeWith<T> for AddRef<F>
where F: for<'a> SerializeWith<&'a T>, T: ?Sized,

Source§

impl<F, T> SerializeWith<T> for Ptr<F>
where F: SerializeWith<T::Target>, T: Deref + ?Sized,

Source§

impl<T> SerializeWith<T> for ByteVec
where T: AsRef<[u8]> + ?Sized,

Source§

impl<T> SerializeWith<T> for Bytes
where T: AsRef<[u8]> + ?Sized,

Source§

impl<T> SerializeWith<T> for Id
where T: Serialize + ?Sized,

Source§

impl<T> SerializeWith<T> for Str
where T: Display + ?Sized,

Source§

impl<T, U, F> SerializeWith<U> for Into<T, F>
where T: From<U>, U: Clone, F: SerializeWith<T>,

Source§

impl<T, U, F> SerializeWith<U> for TryInto<T, F>
where T: TryFrom<U>, T::Error: Display, U: Clone, F: SerializeWith<T>,

Source§

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