multiversx_sc::types

Struct ManagedBuffer

Source
pub struct ManagedBuffer<M: ManagedTypeApi> { /* private fields */ }
Expand description

A byte buffer managed by an external API.

Implementations§

Source§

impl<M: ManagedTypeApi> ManagedBuffer<M>

Source

pub fn new() -> Self

Source

pub fn new_from_bytes(bytes: &[u8]) -> Self

Source

pub fn new_random(nr_bytes: usize) -> Self

Source

pub unsafe fn new_uninit() -> Self

Creates a new object, without initializing it.

§Safety

The value needs to be initialized after creation, otherwise the VM will halt the first time the value is attempted to be read.

Source

pub unsafe fn temp_const_ref( raw_handle: RawHandle, ) -> ManagedRef<'static, M, ManagedBuffer<M>>

Creates a shared managed reference to a given raw handle.

§Safety

The reference points to a shared value. Make sure the handle is not leaked.

Source

pub unsafe fn temp_const_ref_mut( raw_handle: RawHandle, ) -> ManagedRefMut<'static, M, ManagedBuffer<M>>

Creates a shared managed reference to a given raw handle.

§Safety

The reference points to a shared value. Make sure the handle is not leaked.

Source

pub fn with_buffer_contents<R, F>(&self, f: F) -> R
where M: ManagedTypeApi, F: FnOnce(&[u8]) -> R,

Source

pub fn with_buffer_contents_mut<F>(&mut self, f: F)
where M: ManagedTypeApi, F: FnOnce(&mut [u8]) -> &[u8],

Source§

impl<M: ManagedTypeApi> ManagedBuffer<M>

Source

pub fn len(&self) -> usize

Source

pub fn is_empty(&self) -> bool

Source

pub fn to_boxed_bytes(&self) -> BoxedBytes

Method provided for convenience in tests, not to be used in contracts.

Source

pub fn to_vec(&self) -> Vec<u8>

Method provided for convenience in tests, not to be used in contracts.

Source

pub fn load_slice( &self, starting_position: usize, dest_slice: &mut [u8], ) -> Result<(), InvalidSliceError>

TODO: investigate the impact of using Result<(), ()> on the wasm output.

Source

pub fn copy_slice( &self, starting_position: usize, slice_len: usize, ) -> Option<ManagedBuffer<M>>

Source

pub fn load_to_byte_array<'a, const N: usize>( &self, array: &'a mut [u8; N], ) -> &'a [u8]

Source

pub fn for_each_batch<const BATCH_SIZE: usize, F: FnMut(&[u8])>(&self, f: F)

Loads all bytes of the managed buffer in batches, then applies given closure on each batch.

Source

pub fn overwrite(&mut self, value: &[u8])

Source

pub fn set_slice( &mut self, starting_position: usize, source_slice: &[u8], ) -> Result<(), InvalidSliceError>

Source

pub fn set_random(&mut self, nr_bytes: usize)

Source

pub fn append(&mut self, other: &ManagedBuffer<M>)

Source

pub fn append_bytes(&mut self, slice: &[u8])

Source

pub fn append_u32_be(&mut self, item: u32)

Utility function: helps serialize lengths (or any other value of type usize) easier.

Source

pub fn concat(self, other: ManagedBuffer<M>) -> Self

Concatenates 2 managed buffers. Consumes both arguments in the process.

Source

pub fn parse_as_u64(&self) -> Option<u64>

Convenience method for quickly getting a top-decoded u64 from the managed buffer.

TODO: remove this method once TopDecodeInput is implemented for ManagedBuffer reference.

Source

pub fn hex_expr(&self) -> ManagedBuffer<M>

Produces a hex expression in another managed buffer, made up of “0x” + the hex representation of the data.

Trait Implementations§

Source§

impl<Env> AnnotatedValue<Env, ManagedBuffer<<Env as TxEnv>::Api>> for ()
where Env: TxEnv,

Source§

fn annotation(&self, _env: &Env) -> ManagedBuffer<Env::Api>

Source§

fn to_value(&self, _env: &Env) -> ManagedBuffer<Env::Api>

Produces the value from a reference of the annotated type. Might involve a .clone() in some cases.
Source§

fn into_value(self, env: &Env) -> T

Consumes annotated value to produce actual value. Read more
Source§

fn with_value_ref<F, R>(&self, env: &Env, f: F) -> R
where F: FnOnce(&T) -> R,

Can be used when working with references only. Read more
Source§

impl<Env> AnnotatedValue<Env, ManagedBuffer<<Env as TxEnv>::Api>> for ManagedBuffer<Env::Api>
where Env: TxEnv,

Source§

fn annotation(&self, _env: &Env) -> ManagedBuffer<Env::Api>

Source§

fn to_value(&self, _env: &Env) -> ManagedBuffer<Env::Api>

Produces the value from a reference of the annotated type. Might involve a .clone() in some cases.
Source§

fn into_value(self, _env: &Env) -> ManagedBuffer<Env::Api>

Consumes annotated value to produce actual value. Read more
Source§

fn with_value_ref<F, R>(&self, _env: &Env, f: F) -> R
where F: FnOnce(&ManagedBuffer<Env::Api>) -> R,

Can be used when working with references only. Read more
Source§

impl<M: ManagedTypeApi> Clone for ManagedBuffer<M>

Source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<M: ManagedTypeApi> Debug for ManagedBuffer<M>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<M: ManagedTypeApi> Default for ManagedBuffer<M>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<M: ManagedTypeApi> Display for ManagedBuffer<M>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<M> From<&[u8]> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

fn from(bytes: &[u8]) -> Self

Converts to this type from the input type.
Source§

impl<M, const N: usize> From<&[u8; N]> for ManagedBuffer<M>
where M: ManagedTypeApi,

Syntactic sugar only.

Source§

fn from(bytes: &[u8; N]) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<&ManagedBuffer<M>> for BigFloat<M>

Source§

fn from(item: &ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<&ManagedBuffer<M>> for BigInt<M>

Source§

fn from(item: &ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<&ManagedBuffer<M>> for BigUint<M>

Source§

fn from(item: &ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M> From<&String> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

fn from(s: &String) -> Self

Converts to this type from the input type.
Source§

impl<M> From<&str> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

fn from(s: &str) -> Self

Converts to this type from the input type.
Source§

impl<M> From<BoxedBytes> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

fn from(bytes: BoxedBytes) -> Self

Converts to this type from the input type.
Source§

impl<M> From<Empty> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

fn from(_: Empty) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<ManagedBuffer<M>> for BigFloat<M>

Source§

fn from(item: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<ManagedBuffer<M>> for BigInt<M>

Source§

fn from(item: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<ManagedBuffer<M>> for BigUint<M>

Source§

fn from(item: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<ManagedBuffer<M>> for EgldOrEsdtTokenIdentifier<M>

Source§

fn from(buffer: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M> From<ManagedBuffer<M>> for ManagedBufferReadToEnd<M>
where M: ManagedTypeApi,

Source§

fn from(buf: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M> From<ManagedBuffer<M>> for ManagedSCError<M>

Source§

fn from(message: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<ManagedBuffer<M>> for StorageKey<M>

Source§

fn from(buffer: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> From<ManagedBuffer<M>> for TokenIdentifier<M>

Source§

fn from(buffer: ManagedBuffer<M>) -> Self

Converts to this type from the input type.
Source§

impl<M> From<String> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

fn from(s: String) -> Self

Converts to this type from the input type.
Source§

impl<M> From<Vec<u8>> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

fn from(bytes: Vec<u8>) -> Self

Converts to this type from the input type.
Source§

impl<M: ManagedTypeApi> ManagedType<M> for ManagedBuffer<M>

Source§

type OwnHandle = <M as HandleTypeInfo>::ManagedBufferHandle

Source§

fn get_handle(&self) -> M::ManagedBufferHandle

Source§

unsafe fn forget_into_handle(self) -> Self::OwnHandle

Forgets current object (does not run destructor), but extracts the handle. Read more
Source§

fn transmute_from_handle_ref(handle_ref: &M::ManagedBufferHandle) -> &Self

Implement carefully, since the underlying transmutation is an unsafe operation. For types that wrap a handle to some VM-managed data, make sure the type only contains the handle (plus ZSTs if necessary). For types that just wrap another managed type it is easier, call for the wrapped object.
Source§

fn transmute_from_handle_ref_mut( handle_ref: &mut M::ManagedBufferHandle, ) -> &mut Self

Source§

fn get_raw_handle(&self) -> RawHandle

Source§

fn as_ref(&self) -> ManagedRef<'_, M, Self>

Source§

impl<M: ManagedTypeApi> ManagedVecItem for ManagedBuffer<M>

Source§

const SKIPS_RESERIALIZATION: bool = false

If true, then the encoding of the item is identical to the payload, and no further conversion is necessary (the underlying buffer can be used as-is during serialization). False for all managed types, but true for basic types (like u32).
Source§

type PAYLOAD = ManagedVecItemPayloadBuffer<4>

Type managing the underlying binary representation in a ManagedVec..
Source§

type Ref<'a> = ManagedRef<'a, M, ManagedBuffer<M>>

Reference representation of the ManagedVec item. Read more
Source§

fn read_from_payload(payload: &Self::PAYLOAD) -> Self

Parses given bytes as a an owned object.
Source§

unsafe fn borrow_from_payload<'a>(payload: &Self::PAYLOAD) -> Self::Ref<'a>

Parses given bytes as a representation of the object, either owned, or a reference. Read more
Source§

fn save_to_payload(self, payload: &mut Self::PAYLOAD)

Converts the object into bytes. Read more
Source§

fn payload_size() -> usize

Source§

impl<M: ManagedTypeApi> NestedDecode for ManagedBuffer<M>

Source§

fn dep_decode_or_handle_err<I, H>( input: &mut I, h: H, ) -> Result<Self, H::HandledErr>

Version of dep_decode 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.
Source§

fn dep_decode<I>(input: &mut I) -> Result<Self, DecodeError>

Attempt to deserialise the value from input, using the format of an object nested inside another structure. In case of success returns the deserialized value and the number of bytes consumed during the operation.
Source§

impl<M: ManagedTypeApi> NestedEncode for ManagedBuffer<M>

Source§

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

Version of dep_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.
Source§

fn dep_encode<O>(&self, dest: &mut O) -> Result<(), EncodeError>

NestedEncode to output, using the format of an object nested inside another structure. Does not provide compact version.
Source§

impl<M: ManagedTypeApi> NestedEncodeOutput for ManagedBuffer<M>

Source§

fn write(&mut self, bytes: &[u8])

Write to the output.
Source§

fn supports_specialized_type<T: TryStaticCast>() -> bool

Source§

fn push_specialized<T, C, H>( &mut self, _context: C, value: &T, h: H, ) -> Result<(), H::HandledErr>

Source§

fn push_byte(&mut self, byte: u8)

Write a single byte to the output.
Source§

impl<M: ManagedTypeApi, const N: usize> PartialEq<&[u8; N]> for ManagedBuffer<M>

Source§

fn eq(&self, other: &&[u8; N]) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<M: ManagedTypeApi> PartialEq<[u8]> for ManagedBuffer<M>

Source§

fn eq(&self, other: &[u8]) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<M: ManagedTypeApi> PartialEq for ManagedBuffer<M>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<M: ManagedTypeApi> SCBinary for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> SCDisplay for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> SCLowerHex for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> TopDecode for ManagedBuffer<M>

Source§

fn top_decode_or_handle_err<I, H>(input: I, h: H) -> Result<Self, H::HandledErr>

Version of top_decode that can handle errors as soon as they occur. For instance it 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.
Source§

fn top_decode<I>(input: I) -> Result<Self, DecodeError>
where I: TopDecodeInput,

Attempt to deserialize the value from input.
Source§

impl<M> TopDecodeInput for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

type NestedBuffer = ManagedBufferNestedDecodeInput<M>

Source§

fn byte_len(&self) -> usize

Length of the underlying data, in bytes.
Source§

fn into_boxed_slice_u8(self) -> Box<[u8]>

Provides the underlying data as an owned byte slice box. Consumes the input object in the process.
Source§

fn into_max_size_buffer<H, const MAX_LEN: usize>( self, buffer: &mut [u8; MAX_LEN], h: H, ) -> Result<&[u8], H::HandledErr>

👎Deprecated since 0.48.1: Please use method into_max_size_buffer_align_right instead.
Puts the underlying data into a fixed size byte buffer and returns the populated data slice from this buffer. Read more
Source§

fn into_max_size_buffer_align_right<H, const MAX_LEN: usize>( self, buffer: &mut [u8; MAX_LEN], h: H, ) -> Result<usize, H::HandledErr>

Puts the underlying data into a fixed size byte buffer, aligned to the right. Read more
Source§

fn into_i64<H>(self, h: H) -> Result<i64, H::HandledErr>

Retrieves the underlying data as a pre-parsed i64. Expected to panic if the conversion is not possible. Read more
Source§

fn supports_specialized_type<T: TryStaticCast>() -> bool

Source§

fn into_specialized<T, H>(self, h: H) -> Result<T, H::HandledErr>

Source§

fn into_nested_buffer(self) -> Self::NestedBuffer

Source§

fn into_u64<H>(self, h: H) -> Result<u64, <H as DecodeErrorHandler>::HandledErr>

Retrieves the underlying data as a pre-parsed u64. Expected to panic if the conversion is not possible. Read more
Source§

impl<M: ManagedTypeApi> TopEncode for ManagedBuffer<M>

Source§

fn top_encode_or_handle_err<O, H>( &self, output: 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.
Source§

fn top_encode<O>(&self, output: O) -> Result<(), EncodeError>
where O: TopEncodeOutput,

Attempt to serialize the value to ouput.
Source§

impl<M: ManagedTypeApi> TopEncodeOutput for &mut ManagedBuffer<M>

Source§

type NestedBuffer = ManagedBuffer<M>

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

fn set_slice_u8(self, bytes: &[u8])

Source§

fn supports_specialized_type<T: TryStaticCast>() -> bool

Source§

fn set_specialized<T, H>(self, value: &T, h: H) -> Result<(), H::HandledErr>

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.
Source§

fn start_nested_encode(&self) -> Self::NestedBuffer

Source§

fn finalize_nested_encode(self, nb: Self::NestedBuffer)

Source§

fn set_u64(self, value: u64)

Source§

fn set_i64(self, value: i64)

Source§

impl<M> TryFrom<ManagedBuffer<M>> for ManagedAddress<M>
where M: ManagedTypeApi,

Source§

type Error = DecodeError

The type returned in the event of a conversion error.
Source§

fn try_from(value: ManagedBuffer<M>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<M, const N: usize> TryFrom<ManagedBuffer<M>> for ManagedByteArray<M, N>
where M: ManagedTypeApi,

Source§

type Error = DecodeError

The type returned in the event of a conversion error.
Source§

fn try_from(value: ManagedBuffer<M>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<M: ManagedTypeApi> TryStaticCast for ManagedBuffer<M>

Source§

fn type_eq<U>() -> bool
where U: TryStaticCast,

Source§

fn try_cast<U>(self) -> Option<U>
where U: TryStaticCast,

Source§

fn try_cast_ref<U>(&self) -> Option<&U>
where U: TryStaticCast,

Source§

impl<M: ManagedTypeApi> TypeAbi for ManagedBuffer<M>

Source§

type Unmanaged = Vec<u8>

Source§

fn type_name() -> TypeName

Source§

fn type_name_rust() -> TypeName

Source§

fn type_names() -> TypeNames

Source§

fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )

A type can provide more than its own name. For instance, a struct can also provide the descriptions of the type of its fields. TypeAbi doesn’t care for the exact accumulator type, which is abstracted by the TypeDescriptionContainer trait.
Source§

impl<M: ManagedTypeApi> Eq for ManagedBuffer<M>

Source§

impl<Env> TxCodeValue<Env> for ManagedBuffer<Env::Api>
where Env: TxEnv,

Source§

impl<M> TypeAbiFrom<&[u8]> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

impl<M, const N: usize> TypeAbiFrom<&[u8; N]> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<&BoxedBytes> for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<&ManagedBuffer<M>> for BoxedBytes

Source§

impl<M> TypeAbiFrom<&ManagedBuffer<M>> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<&ManagedBuffer<M>> for String

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<&ManagedBuffer<M>> for Vec<u8>

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<&String> for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<&Vec<u8>> for ManagedBuffer<M>

Source§

impl<M> TypeAbiFrom<&str> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<BoxedBytes> for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<ManagedBuffer<M>> for BoxedBytes

Source§

impl<M> TypeAbiFrom<ManagedBuffer<M>> for ManagedBuffer<M>
where M: ManagedTypeApi,

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<ManagedBuffer<M>> for String

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<ManagedBuffer<M>> for Vec<u8>

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<OperationCompletionStatus> for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<String> for ManagedBuffer<M>

Source§

impl<M: ManagedTypeApi> TypeAbiFrom<Vec<u8>> for ManagedBuffer<M>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

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

Source§

fn fmt<F>(&self, f: &mut F)

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TopDecodeMulti for T
where T: TopDecode,

Source§

const IS_SINGLE_VALUE: bool = true

Used to optimize single value loading of endpoint arguments.
Source§

fn multi_decode_or_handle_err<I, H>( input: &mut I, h: H, ) -> Result<T, <H as DecodeErrorHandler>::HandledErr>

Source§

fn multi_decode<I>(input: &mut I) -> Result<Self, DecodeError>

Source§

impl<T> TopDecodeMultiLength for T
where T: TopEncode + TopDecode,

Source§

const LEN: usize = 1usize

Source§

fn get_len() -> usize

Source§

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

Source§

fn multi_encode_or_handle_err<O, H>( &self, output: &mut O, h: H, ) -> Result<(), <H as EncodeErrorHandler>::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.
Source§

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

Attempt to serialize the value to ouput.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<O, T> ProxyArg<O> for T
where O: TypeAbiFrom<T>, T: TopEncodeMulti,