Trait elrond_codec::TopEncodeOutput[][src]

pub trait TopEncodeOutput: Sized {
    type NestedBuffer: NestedEncodeOutput;
    fn set_slice_u8(self, bytes: &[u8]);
fn start_nested_encode(&self) -> Self::NestedBuffer;
fn finalize_nested_encode(self, nb: Self::NestedBuffer); fn set_boxed_bytes(self, bytes: Box<[u8]>) { ... }
fn set_u64(self, value: u64) { ... }
fn set_i64(self, value: i64) { ... }
fn set_specialized<T, F>(
        self,
        _value: &T,
        else_serialization: F
    ) -> Result<(), EncodeError>
    where
        T: TryStaticCast,
        F: FnOnce(Self) -> Result<(), EncodeError>
, { ... } }
Expand description

Specifies objects that can receive the result of a TopEncode computation. in principle from NestedEncode performed on nested items.

All methods consume the object, so they can only be called once.

The trait is used in 3 scenarios:

  • SC results
  • #[storage_set(...)]
  • Serialize async call.

Associated Types

Type of NestedEncodeOutput that can be spawned to gather serializations of children.

Required methods

Provided methods

Allows special handling of special types. Also requires an alternative serialization, in case the special handling is not covered. The alternative serialization, else_serialization is only called when necessary and is normally compiled out via monomorphization.

Implementors