Trait dharitri_codec::TopEncode
source · pub trait TopEncode: Sized {
// Required method
fn top_encode<O: TopEncodeOutput>(
&self,
output: O
) -> Result<(), EncodeError>;
// Provided method
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>(
&self,
output: O,
c: ExitCtx,
exit: fn(_: ExitCtx, _: EncodeError) -> !
) { ... }
}Required Methods§
sourcefn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
Attempt to serialize the value to ouput.
Provided Methods§
sourcefn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>(
&self,
output: O,
c: ExitCtx,
exit: fn(_: ExitCtx, _: EncodeError) -> !
)
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
Version of top_decode that exits quickly in case of error.
Its purpose is to create smaller bytecode implementations
in cases where the application is supposed to exit directly on decode error.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl TopEncode for &str
impl TopEncode for &str
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for bool
impl TopEncode for bool
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for i8
impl TopEncode for i8
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for i16
impl TopEncode for i16
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for i32
impl TopEncode for i32
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for i64
impl TopEncode for i64
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for isize
impl TopEncode for isize
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for u8
impl TopEncode for u8
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for u16
impl TopEncode for u16
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for u32
impl TopEncode for u32
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for u64
impl TopEncode for u64
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for ()
impl TopEncode for ()
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for usize
impl TopEncode for usize
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, _: ExitCtx, _: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for Box<str>
impl TopEncode for Box<str>
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for String
impl TopEncode for String
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl TopEncode for NonZeroUsize
impl TopEncode for NonZeroUsize
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0> TopEncode for (T0,)where
T0: NestedEncode,
impl<T0> TopEncode for (T0,)where
T0: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1> TopEncode for (T0, T1)where
T0: NestedEncode,
T1: NestedEncode,
impl<T0, T1> TopEncode for (T0, T1)where
T0: NestedEncode,
T1: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2> TopEncode for (T0, T1, T2)
impl<T0, T1, T2> TopEncode for (T0, T1, T2)
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3> TopEncode for (T0, T1, T2, T3)
impl<T0, T1, T2, T3> TopEncode for (T0, T1, T2, T3)
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4> TopEncode for (T0, T1, T2, T3, T4)
impl<T0, T1, T2, T3, T4> TopEncode for (T0, T1, T2, T3, T4)
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5> TopEncode for (T0, T1, T2, T3, T4, T5)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
impl<T0, T1, T2, T3, T4, T5> TopEncode for (T0, T1, T2, T3, T4, T5)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6> TopEncode for (T0, T1, T2, T3, T4, T5, T6)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6> TopEncode for (T0, T1, T2, T3, T4, T5, T6)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
T13: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
T13: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
T13: NestedEncode,
T14: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
T13: NestedEncode,
T14: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
T13: NestedEncode,
T14: NestedEncode,
T15: NestedEncode,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> TopEncode for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T0: NestedEncode,
T1: NestedEncode,
T2: NestedEncode,
T3: NestedEncode,
T4: NestedEncode,
T5: NestedEncode,
T6: NestedEncode,
T7: NestedEncode,
T8: NestedEncode,
T9: NestedEncode,
T10: NestedEncode,
T11: NestedEncode,
T12: NestedEncode,
T13: NestedEncode,
T14: NestedEncode,
T15: NestedEncode,
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T: NestedEncode> TopEncode for &[T]
impl<T: NestedEncode> TopEncode for &[T]
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
source§impl<T: NestedEncode> TopEncode for Option<T>
impl<T: NestedEncode> TopEncode for Option<T>
source§fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
fn top_encode<O: TopEncodeOutput>(&self, output: O) -> Result<(), EncodeError>
Allow None to be serialized to empty bytes, but leave the leading “1” for Some, to allow disambiguation between e.g. Some(0) and None.
source§fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>(
&self,
output: O,
c: ExitCtx,
exit: fn(_: ExitCtx, _: EncodeError) -> !
)
fn top_encode_or_exit<O: TopEncodeOutput, ExitCtx: Clone>( &self, output: O, c: ExitCtx, exit: fn(_: ExitCtx, _: EncodeError) -> ! )
Allow None to be serialized to empty bytes, but leave the leading “1” for Some, to allow disambiguation between e.g. Some(0) and None.