pub trait TopEncodeMulti: Sized {
    type DecodeAs;

    // Provided methods
    fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>
       where O: TopEncodeMultiOutput { ... }
    fn multi_encode_or_handle_err<O, H>(
        &self,
        output: &mut O,
        h: H
    ) -> Result<(), H::HandledErr>
       where O: TopEncodeMultiOutput,
             H: EncodeErrorHandler { ... }
}

Required Associated Types§

source

type DecodeAs

Indicates how the encoding result should be interpreted when deserializing back. Self for most types.

This mechanism will hopefully be replaced by something more general at some point in the future.

Provided Methods§

source

fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>

Attempt to serialize the value to ouput.

source

fn multi_encode_or_handle_err<O, H>( &self, output: &mut O, h: H ) -> Result<(), H::HandledErr>

Version of top_encode that can handle errors as soon as they occur. For instance in can exit immediately and make sure that if it returns, it is a success. By not deferring error handling, this can lead to somewhat smaller bytecode.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl TopEncodeMulti for IgnoreValue

source§

impl<T0, T1> TopEncodeMulti for MultiValue2<T0, T1>

§

type DecodeAs = MultiValue2<T0, T1>

source§

impl<T0, T1, T2> TopEncodeMulti for MultiValue3<T0, T1, T2>

§

type DecodeAs = MultiValue3<T0, T1, T2>

source§

impl<T0, T1, T2, T3> TopEncodeMulti for MultiValue4<T0, T1, T2, T3>

§

type DecodeAs = MultiValue4<T0, T1, T2, T3>

source§

impl<T0, T1, T2, T3, T4> TopEncodeMulti for MultiValue5<T0, T1, T2, T3, T4>

§

type DecodeAs = MultiValue5<T0, T1, T2, T3, T4>

source§

impl<T0, T1, T2, T3, T4, T5> TopEncodeMulti for MultiValue6<T0, T1, T2, T3, T4, T5>

§

type DecodeAs = MultiValue6<T0, T1, T2, T3, T4, T5>

source§

impl<T0, T1, T2, T3, T4, T5, T6> TopEncodeMulti for MultiValue7<T0, T1, T2, T3, T4, T5, T6>

§

type DecodeAs = MultiValue7<T0, T1, T2, T3, T4, T5, T6>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> TopEncodeMulti for MultiValue8<T0, T1, T2, T3, T4, T5, T6, T7>

§

type DecodeAs = MultiValue8<T0, T1, T2, T3, T4, T5, T6, T7>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TopEncodeMulti for MultiValue9<T0, T1, T2, T3, T4, T5, T6, T7, T8>

§

type DecodeAs = MultiValue9<T0, T1, T2, T3, T4, T5, T6, T7, T8>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TopEncodeMulti for MultiValue10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>

§

type DecodeAs = MultiValue10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TopEncodeMulti for MultiValue11<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>

§

type DecodeAs = MultiValue11<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TopEncodeMulti for MultiValue12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>

§

type DecodeAs = MultiValue12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TopEncodeMulti for MultiValue13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>

§

type DecodeAs = MultiValue13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> TopEncodeMulti for MultiValue14<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>

§

type DecodeAs = MultiValue14<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> TopEncodeMulti for MultiValue15<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>

§

type DecodeAs = MultiValue15<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> TopEncodeMulti for MultiValue16<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>

§

type DecodeAs = MultiValue16<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>

source§

impl<T> TopEncodeMulti for OptionalValue<T>
where T: TopEncodeMulti,

source§

impl<T> TopEncodeMulti for MultiValueVec<T>
where T: TopEncodeMulti,

source§

impl<T> TopEncodeMulti for T
where T: TopEncode,

All single top encode types also work as multi-value encode types.

§

type DecodeAs = T