Struct dharitri_wasm::types::MoaxOrDctTokenIdentifier
source · pub struct MoaxOrDctTokenIdentifier<M: ManagedTypeApi> { /* private fields */ }Expand description
Specialized type for handling either MOAX or DCT token identifiers.
Equivalent to a structure of the form
enum MoaxOrDctTokenIdentifier<M: ManagedTypeApi> {
Moax,
Dct(TokenIdentifier<M>),
}It is, however more optimized than that. Its implementation is based on ManagedOption.
MOAX a special, invalid token identifier handle. This way we can fit it inside a single i32 in memory.
Implementations§
source§impl<M: ManagedTypeApi> MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> MoaxOrDctTokenIdentifier<M>
sourcepub const MOAX_REPRESENTATION: &'static [u8; 4] = _
pub const MOAX_REPRESENTATION: &'static [u8; 4] = _
This special representation is interpreted as the MOAX token.
sourcepub fn dct<TI>(token_identifier: TI) -> Selfwhere
TokenIdentifier<M>: From<TI>,
pub fn dct<TI>(token_identifier: TI) -> Selfwhere
TokenIdentifier<M>: From<TI>,
DCT instance, containing an DCT token identifier.
pub fn from_opt_raw_handle(opt_handle: Option<M::ManagedBufferHandle>) -> Self
pub fn parse(data: ManagedBuffer<M>) -> Self
pub fn is_moax(&self) -> bool
pub fn is_dct(&self) -> bool
pub fn into_name(self) -> ManagedBuffer<M>
sourcepub fn is_valid(&self) -> bool
pub fn is_valid(&self) -> bool
Checks the DCT token identifier for validity. MOAX is considered valid, no checks needed.
Will fail if it encodes an invalid DCT token identifier.
pub fn map_or_else<U, D, F>(self, for_moax: D, for_dct: F) -> U
pub fn map_ref_or_else<U, D, F>(&self, for_moax: D, for_dct: F) -> U
pub fn unwrap_dct(self) -> TokenIdentifier<M>
sourcepub fn as_dct_option(&self) -> Option<ManagedRef<'_, M, TokenIdentifier<M>>>
pub fn as_dct_option(&self) -> Option<ManagedRef<'_, M, TokenIdentifier<M>>>
Representation of the object as an Option.
Because it does not consume self only a reference to the DCT token identifier can be returned.
sourcepub fn into_dct_option(self) -> Option<TokenIdentifier<M>>
pub fn into_dct_option(self) -> Option<TokenIdentifier<M>>
Converts self into an Option. Consumes self in the process.
Trait Implementations§
source§impl<M: Clone + ManagedTypeApi> Clone for MoaxOrDctTokenIdentifier<M>
impl<M: Clone + ManagedTypeApi> Clone for MoaxOrDctTokenIdentifier<M>
source§fn clone(&self) -> MoaxOrDctTokenIdentifier<M>
fn clone(&self) -> MoaxOrDctTokenIdentifier<M>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<M> Debug for MoaxOrDctTokenIdentifier<M>where
M: ManagedTypeApi,
impl<M> Debug for MoaxOrDctTokenIdentifier<M>where
M: ManagedTypeApi,
source§impl<M: ManagedTypeApi> ManagedVecItem for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> ManagedVecItem for MoaxOrDctTokenIdentifier<M>
source§const PAYLOAD_SIZE: usize = 4usize
const PAYLOAD_SIZE: usize = 4usize
Size of the data stored in the underlying
ManagedBuffer.source§const SKIPS_RESERIALIZATION: bool = false
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).§type Ref<'a> = MoaxOrDctTokenIdentifier<M>
type Ref<'a> = MoaxOrDctTokenIdentifier<M>
Reference representation of the ManagedVec item. Read more
source§fn from_byte_reader<Reader: FnMut(&mut [u8])>(reader: Reader) -> Self
fn from_byte_reader<Reader: FnMut(&mut [u8])>(reader: Reader) -> Self
Parses given bytes as a an owned object.
source§unsafe fn from_byte_reader_as_borrow<'a, Reader: FnMut(&mut [u8])>(
reader: Reader
) -> Self::Ref<'a>
unsafe fn from_byte_reader_as_borrow<'a, Reader: FnMut(&mut [u8])>( reader: Reader ) -> Self::Ref<'a>
Parses given bytes as a representation of the object, either owned, or a reference. Read more
fn to_byte_writer<R, Writer: FnMut(&[u8]) -> R>(&self, writer: Writer) -> R
source§impl<M: ManagedTypeApi> NestedDecode for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> NestedDecode for MoaxOrDctTokenIdentifier<M>
source§fn dep_decode_or_handle_err<I, H>(
input: &mut I,
h: H
) -> Result<Self, H::HandledErr>where
I: NestedDecodeInput,
H: DecodeErrorHandler,
fn dep_decode_or_handle_err<I, H>(
input: &mut I,
h: H
) -> Result<Self, H::HandledErr>where
I: NestedDecodeInput,
H: DecodeErrorHandler,
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>where
I: NestedDecodeInput,
fn dep_decode<I>(input: &mut I) -> Result<Self, DecodeError>where
I: NestedDecodeInput,
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 MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> NestedEncode for MoaxOrDctTokenIdentifier<M>
source§fn dep_encode_or_handle_err<O, H>(
&self,
dest: &mut O,
h: H
) -> Result<(), H::HandledErr>where
O: NestedEncodeOutput,
H: EncodeErrorHandler,
fn dep_encode_or_handle_err<O, H>(
&self,
dest: &mut O,
h: H
) -> Result<(), H::HandledErr>where
O: NestedEncodeOutput,
H: EncodeErrorHandler,
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>where
O: NestedEncodeOutput,
fn dep_encode<O>(&self, dest: &mut O) -> Result<(), EncodeError>where
O: NestedEncodeOutput,
NestedEncode to output, using the format of an object nested inside another structure.
Does not provide compact version.
source§impl<M: ManagedTypeApi> PartialEq<MoaxOrDctTokenIdentifier<M>> for TokenIdentifier<M>
impl<M: ManagedTypeApi> PartialEq<MoaxOrDctTokenIdentifier<M>> for TokenIdentifier<M>
source§fn eq(&self, other: &MoaxOrDctTokenIdentifier<M>) -> bool
fn eq(&self, other: &MoaxOrDctTokenIdentifier<M>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<M: ManagedTypeApi> PartialEq<TokenIdentifier<M>> for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> PartialEq<TokenIdentifier<M>> for MoaxOrDctTokenIdentifier<M>
source§fn eq(&self, other: &TokenIdentifier<M>) -> bool
fn eq(&self, other: &TokenIdentifier<M>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<M: ManagedTypeApi> PartialEq for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> PartialEq for MoaxOrDctTokenIdentifier<M>
source§impl<M: ManagedTypeApi> SCDisplay for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> SCDisplay for MoaxOrDctTokenIdentifier<M>
fn fmt<F: FormatByteReceiver>(&self, f: &mut F)
source§impl<M: ManagedTypeApi> SCLowerHex for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> SCLowerHex for MoaxOrDctTokenIdentifier<M>
fn fmt<F: FormatByteReceiver>(&self, f: &mut F)
source§impl<M: ManagedTypeApi> TopDecode for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> TopDecode for MoaxOrDctTokenIdentifier<M>
source§fn top_decode_or_handle_err<I, H>(input: I, h: H) -> Result<Self, H::HandledErr>where
I: TopDecodeInput,
H: DecodeErrorHandler,
fn top_decode_or_handle_err<I, H>(input: I, h: H) -> Result<Self, H::HandledErr>where
I: TopDecodeInput,
H: DecodeErrorHandler,
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,
fn top_decode<I>(input: I) -> Result<Self, DecodeError>where
I: TopDecodeInput,
Attempt to deserialize the value from input.
source§impl<M: ManagedTypeApi> TopEncode for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> TopEncode for MoaxOrDctTokenIdentifier<M>
source§fn top_encode_or_handle_err<O, H>(
&self,
output: O,
h: H
) -> Result<(), H::HandledErr>where
O: TopEncodeOutput,
H: EncodeErrorHandler,
fn top_encode_or_handle_err<O, H>(
&self,
output: O,
h: H
) -> Result<(), H::HandledErr>where
O: TopEncodeOutput,
H: EncodeErrorHandler,
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,
fn top_encode<O>(&self, output: O) -> Result<(), EncodeError>where
O: TopEncodeOutput,
Attempt to serialize the value to ouput.
source§impl<M: ManagedTypeApi> TypeAbi for MoaxOrDctTokenIdentifier<M>
impl<M: ManagedTypeApi> TypeAbi for MoaxOrDctTokenIdentifier<M>
fn type_name() -> TypeName
source§fn provide_type_descriptions<TDC: TypeDescriptionContainer>(
accumulator: &mut TDC
)
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC )
A type can provide more than its own description.
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.
impl<M> CodecFrom<&[u8]> for MoaxOrDctTokenIdentifier<M>where
M: ManagedTypeApi,
impl<M> CodecFrom<&TokenIdentifier<M>> for MoaxOrDctTokenIdentifier<M>where
M: ManagedTypeApi,
impl<M> CodecFrom<&str> for MoaxOrDctTokenIdentifier<M>where
M: ManagedTypeApi,
impl<M> CodecFrom<TokenIdentifier<M>> for MoaxOrDctTokenIdentifier<M>where
M: ManagedTypeApi,
impl<M> CodecFromSelf for MoaxOrDctTokenIdentifier<M>where
M: ManagedTypeApi,
impl<M: ManagedTypeApi> Eq for MoaxOrDctTokenIdentifier<M>
Auto Trait Implementations§
impl<M> RefUnwindSafe for MoaxOrDctTokenIdentifier<M>
impl<M> Send for MoaxOrDctTokenIdentifier<M>
impl<M> Sync for MoaxOrDctTokenIdentifier<M>
impl<M> Unpin for MoaxOrDctTokenIdentifier<M>
impl<M> UnwindSafe for MoaxOrDctTokenIdentifier<M>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> SCCodec for Twhere
T: TopEncode,
impl<T> SCCodec for Twhere
T: TopEncode,
fn fmt<F>(&self, f: &mut F)where
F: FormatByteReceiver,
source§impl<T> TopDecodeMulti for Twhere
T: TopDecode,
impl<T> TopDecodeMulti for Twhere
T: TopDecode,
source§const IS_SINGLE_VALUE: bool = true
const IS_SINGLE_VALUE: bool = true
Used to optimize single value loading of endpoint arguments.
fn multi_decode_or_handle_err<I, H>(
input: &mut I,
h: H
) -> Result<T, <H as DecodeErrorHandler>::HandledErr>where
I: TopDecodeMultiInput,
H: DecodeErrorHandler,
fn multi_decode<I>(input: &mut I) -> Result<Self, DecodeError>where
I: TopDecodeMultiInput,
source§impl<T> TopDecodeMultiLength for T
impl<T> TopDecodeMultiLength for T
source§impl<T> TopEncodeMulti for Twhere
T: TopEncode,
impl<T> TopEncodeMulti for Twhere
T: TopEncode,
source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H
) -> Result<(), <H as EncodeErrorHandler>::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H
) -> Result<(), <H as EncodeErrorHandler>::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
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>where
O: TopEncodeMultiOutput,
fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
Attempt to serialize the value to ouput.