pub trait TypeAbi: TypeAbiFrom<Self> {
type Unmanaged;
// Provided methods
fn type_names() -> TypeNames { ... }
fn type_name() -> TypeName { ... }
fn type_name_rust() -> TypeName { ... }
fn provide_type_descriptions<TDC: TypeDescriptionContainer>(
accumulator: &mut TDC,
) { ... }
}
Expand description
Implemented for all types that can end up in the ABI:
- argument types,
- result types,
- event log arguments
- etc.
Will be automatically implemented for struct ad enum types via the #[type_abi]
annotation.
Required Associated Types§
Provided Methods§
fn type_names() -> TypeNames
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
Sourcefn 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 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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl TypeAbi for NonZeroUsize
impl TypeAbi for NonZeroUsize
Source§impl<T0, T1, T2> TypeAbi for (T0, T1, T2)
impl<T0, T1, T2> TypeAbi for (T0, T1, T2)
Source§impl<T0, T1, T2, T3> TypeAbi for (T0, T1, T2, T3)
impl<T0, T1, T2, T3> TypeAbi for (T0, T1, T2, T3)
Source§impl<T0, T1, T2, T3, T4> TypeAbi for (T0, T1, T2, T3, T4)
impl<T0, T1, T2, T3, T4> TypeAbi for (T0, T1, T2, T3, T4)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5> TypeAbi for (T0, T1, T2, T3, T4, T5)
impl<T0, T1, T2, T3, T4, T5> TypeAbi for (T0, T1, T2, T3, T4, T5)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6> TypeAbi for (T0, T1, T2, T3, T4, T5, T6)
impl<T0, T1, T2, T3, T4, T5, T6> TypeAbi for (T0, T1, T2, T3, T4, T5, T6)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<T0, T1, T2, T3, T4, T5, T6, T7> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged, <T9 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged, <T9 as TypeAbi>::Unmanaged, <T10 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged, <T9 as TypeAbi>::Unmanaged, <T10 as TypeAbi>::Unmanaged, <T11 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged, <T9 as TypeAbi>::Unmanaged, <T10 as TypeAbi>::Unmanaged, <T11 as TypeAbi>::Unmanaged, <T12 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged, <T9 as TypeAbi>::Unmanaged, <T10 as TypeAbi>::Unmanaged, <T11 as TypeAbi>::Unmanaged, <T12 as TypeAbi>::Unmanaged, <T13 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged, <T9 as TypeAbi>::Unmanaged, <T10 as TypeAbi>::Unmanaged, <T11 as TypeAbi>::Unmanaged, <T12 as TypeAbi>::Unmanaged, <T13 as TypeAbi>::Unmanaged, <T14 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> TypeAbi for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
type Unmanaged = (<T0 as TypeAbi>::Unmanaged, <T1 as TypeAbi>::Unmanaged, <T2 as TypeAbi>::Unmanaged, <T3 as TypeAbi>::Unmanaged, <T4 as TypeAbi>::Unmanaged, <T5 as TypeAbi>::Unmanaged, <T6 as TypeAbi>::Unmanaged, <T7 as TypeAbi>::Unmanaged, <T8 as TypeAbi>::Unmanaged, <T9 as TypeAbi>::Unmanaged, <T10 as TypeAbi>::Unmanaged, <T11 as TypeAbi>::Unmanaged, <T12 as TypeAbi>::Unmanaged, <T13 as TypeAbi>::Unmanaged, <T14 as TypeAbi>::Unmanaged, <T15 as TypeAbi>::Unmanaged)
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
Implementors§
Source§impl TypeAbi for EsdtLocalRole
impl TypeAbi for EsdtLocalRole
type Unmanaged = EsdtLocalRole
Source§impl TypeAbi for EsdtTokenType
impl TypeAbi for EsdtTokenType
type Unmanaged = EsdtTokenType
Source§impl TypeAbi for MessageHashType
impl TypeAbi for MessageHashType
type Unmanaged = MessageHashType
Source§impl TypeAbi for IgnoreValue
impl TypeAbi for IgnoreValue
type Unmanaged = IgnoreValue
Source§impl TypeAbi for BoxedBytes
impl TypeAbi for BoxedBytes
type Unmanaged = BoxedBytes
Source§impl TypeAbi for CodeMetadata
impl TypeAbi for CodeMetadata
type Unmanaged = CodeMetadata
Source§impl<Api> TypeAbi for FunctionCall<Api>where
Api: ManagedTypeApi,
impl<Api> TypeAbi for FunctionCall<Api>where
Api: ManagedTypeApi,
type Unmanaged = FunctionCall<Api>
Source§impl<E, const CAPACITY: usize> TypeAbi for SparseArray<E, CAPACITY>where
E: ErrorApi,
impl<E, const CAPACITY: usize> TypeAbi for SparseArray<E, CAPACITY>where
E: ErrorApi,
type Unmanaged = SparseArray<E, CAPACITY>
Source§impl<M> TypeAbi for EgldOrEsdtTokenPaymentMultiValue<M>where
M: ManagedTypeApi,
impl<M> TypeAbi for EgldOrEsdtTokenPaymentMultiValue<M>where
M: ManagedTypeApi,
Source§impl<M> TypeAbi for EsdtTokenPaymentMultiValue<M>where
M: ManagedTypeApi,
impl<M> TypeAbi for EsdtTokenPaymentMultiValue<M>where
M: ManagedTypeApi,
type Unmanaged = EsdtTokenPaymentMultiValue<M>
Source§impl<M> TypeAbi for ManagedAddress<M>where
M: ManagedTypeApi,
impl<M> TypeAbi for ManagedAddress<M>where
M: ManagedTypeApi,
Source§impl<M> TypeAbi for ManagedArgBuffer<M>where
M: ManagedTypeApi,
impl<M> TypeAbi for ManagedArgBuffer<M>where
M: ManagedTypeApi,
Source§impl<M, T> TypeAbi for ManagedAsyncCallResult<M, T>where
M: ManagedTypeApi,
T: TypeAbi,
impl<M, T> TypeAbi for ManagedAsyncCallResult<M, T>where
M: ManagedTypeApi,
T: TypeAbi,
type Unmanaged = ManagedAsyncCallResult<M, T>
Source§impl<M, T> TypeAbi for ManagedOption<M, T>
impl<M, T> TypeAbi for ManagedOption<M, T>
Source§impl<M, T> TypeAbi for ManagedVec<M, T>
impl<M, T> TypeAbi for ManagedVec<M, T>
Source§impl<M, T> TypeAbi for MultiValueEncoded<M, T>where
M: ManagedTypeApi,
T: TypeAbi,
impl<M, T> TypeAbi for MultiValueEncoded<M, T>where
M: ManagedTypeApi,
T: TypeAbi,
Source§impl<M, T> TypeAbi for MultiValueEncodedCounted<M, T>
impl<M, T> TypeAbi for MultiValueEncodedCounted<M, T>
Source§impl<M, T> TypeAbi for MultiValueManagedVec<M, T>
impl<M, T> TypeAbi for MultiValueManagedVec<M, T>
Source§impl<M, T> TypeAbi for MultiValueManagedVecCounted<M, T>
impl<M, T> TypeAbi for MultiValueManagedVecCounted<M, T>
type Unmanaged = MultiValueManagedVecCounted<M, T>
Source§impl<M, const N: usize> TypeAbi for ManagedByteArray<M, N>where
M: ManagedTypeApi,
impl<M, const N: usize> TypeAbi for ManagedByteArray<M, N>where
M: ManagedTypeApi,
Source§impl<M: ManagedTypeApi> TypeAbi for EgldOrMultiEsdtPayment<M>
impl<M: ManagedTypeApi> TypeAbi for EgldOrMultiEsdtPayment<M>
type Unmanaged = EgldOrMultiEsdtPayment<M>
Source§impl<M: ManagedTypeApi> TypeAbi for multiversx_sc::types::BigInt<M>
impl<M: ManagedTypeApi> TypeAbi for multiversx_sc::types::BigInt<M>
Source§impl<M: ManagedTypeApi> TypeAbi for multiversx_sc::types::BigUint<M>
impl<M: ManagedTypeApi> TypeAbi for multiversx_sc::types::BigUint<M>
Source§impl<M: ManagedTypeApi> TypeAbi for EgldOrEsdtTokenIdentifier<M>
impl<M: ManagedTypeApi> TypeAbi for EgldOrEsdtTokenIdentifier<M>
type Unmanaged = EgldOrEsdtTokenIdentifier<M>
Source§impl<M: ManagedTypeApi> TypeAbi for EgldOrEsdtTokenPayment<M>
impl<M: ManagedTypeApi> TypeAbi for EgldOrEsdtTokenPayment<M>
type Unmanaged = EgldOrEsdtTokenPayment<M>
Source§impl<M: ManagedTypeApi> TypeAbi for EllipticCurve<M>
impl<M: ManagedTypeApi> TypeAbi for EllipticCurve<M>
type Unmanaged = EllipticCurve<M>
Source§impl<M: ManagedTypeApi> TypeAbi for EsdtTokenData<M>
impl<M: ManagedTypeApi> TypeAbi for EsdtTokenData<M>
type Unmanaged = EsdtTokenData<M>
Source§impl<M: ManagedTypeApi> TypeAbi for EsdtTokenPayment<M>
impl<M: ManagedTypeApi> TypeAbi for EsdtTokenPayment<M>
type Unmanaged = EsdtTokenPayment<M>
Source§impl<M: ManagedTypeApi> TypeAbi for ManagedBuffer<M>
impl<M: ManagedTypeApi> TypeAbi for ManagedBuffer<M>
Source§impl<M: ManagedTypeApi> TypeAbi for ManagedBufferReadToEnd<M>
impl<M: ManagedTypeApi> TypeAbi for ManagedBufferReadToEnd<M>
Source§impl<M: ManagedTypeApi> TypeAbi for ManagedDecimal<M, NumDecimals>
impl<M: ManagedTypeApi> TypeAbi for ManagedDecimal<M, NumDecimals>
type Unmanaged = ManagedDecimal<M, usize>
Source§impl<M: ManagedTypeApi> TypeAbi for ManagedDecimalSigned<M, NumDecimals>
impl<M: ManagedTypeApi> TypeAbi for ManagedDecimalSigned<M, NumDecimals>
type Unmanaged = ManagedDecimalSigned<M, usize>
Source§impl<M: ManagedTypeApi> TypeAbi for TokenIdentifier<M>
impl<M: ManagedTypeApi> TypeAbi for TokenIdentifier<M>
type Unmanaged = TokenIdentifier<M>
Source§impl<M: ManagedTypeApi, const DECIMALS: NumDecimals> TypeAbi for ManagedDecimal<M, ConstDecimals<DECIMALS>>
impl<M: ManagedTypeApi, const DECIMALS: NumDecimals> TypeAbi for ManagedDecimal<M, ConstDecimals<DECIMALS>>
type Unmanaged = ManagedDecimal<M, ConstDecimals<DECIMALS>>
Source§impl<M: ManagedTypeApi, const DECIMALS: NumDecimals> TypeAbi for ManagedDecimalSigned<M, ConstDecimals<DECIMALS>>
impl<M: ManagedTypeApi, const DECIMALS: NumDecimals> TypeAbi for ManagedDecimalSigned<M, ConstDecimals<DECIMALS>>
type Unmanaged = ManagedDecimalSigned<M, ConstDecimals<DECIMALS>>
Source§impl<SA> TypeAbi for FungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> TypeAbi for FungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
type Unmanaged = FungibleTokenMapper<SA>
Source§impl<SA> TypeAbi for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
impl<SA> TypeAbi for NonFungibleTokenMapper<SA>where
SA: StorageMapperApi + CallTypeApi,
type Unmanaged = NonFungibleTokenMapper<SA>
Source§impl<SA> TypeAbi for UniqueIdMapper<SA, CurrentStorage>where
SA: StorageMapperApi,
Behaves like a MultiResultVec when an endpoint result.
impl<SA> TypeAbi for UniqueIdMapper<SA, CurrentStorage>where
SA: StorageMapperApi,
Behaves like a MultiResultVec when an endpoint result.
type Unmanaged = UniqueIdMapper<SA>
Source§impl<SA> TypeAbi for UserMapper<SA, CurrentStorage>where
SA: StorageMapperApi,
Behaves like a MultiResultVec when an endpoint result.
impl<SA> TypeAbi for UserMapper<SA, CurrentStorage>where
SA: StorageMapperApi,
Behaves like a MultiResultVec when an endpoint result.
type Unmanaged = UserMapper<SA>
Source§impl<SA, K, V> TypeAbi for BiDiMapper<SA, K, V, CurrentStorage>where
SA: StorageMapperApi,
K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq + TypeAbi,
V: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq + TypeAbi,
impl<SA, K, V> TypeAbi for BiDiMapper<SA, K, V, CurrentStorage>where
SA: StorageMapperApi,
K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq + TypeAbi,
V: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq + TypeAbi,
type Unmanaged = BiDiMapper<SA, K, V>
Source§impl<SA, K, V> TypeAbi for MapMapper<SA, K, V, CurrentStorage>where
SA: StorageMapperApi,
K: TopEncode + TopDecode + NestedEncode + NestedDecode + TypeAbi + 'static,
V: TopEncode + TopDecode + TypeAbi + 'static,
Behaves like a MultiResultVec<MultiValue<K, V>> when an endpoint result.
impl<SA, K, V> TypeAbi for MapMapper<SA, K, V, CurrentStorage>where
SA: StorageMapperApi,
K: TopEncode + TopDecode + NestedEncode + NestedDecode + TypeAbi + 'static,
V: TopEncode + TopDecode + TypeAbi + 'static,
Behaves like a MultiResultVec<MultiValue<K, V>> when an endpoint result.
Source§impl<SA, T> TypeAbi for LinkedListMapper<SA, T>where
SA: StorageMapperApi,
T: TopEncode + TopDecode + NestedEncode + NestedDecode + Clone + TypeAbi,
impl<SA, T> TypeAbi for LinkedListMapper<SA, T>where
SA: StorageMapperApi,
T: TopEncode + TopDecode + NestedEncode + NestedDecode + Clone + TypeAbi,
type Unmanaged = LinkedListMapper<SA, T>
Source§impl<SA, T> TypeAbi for QueueMapper<SA, T, CurrentStorage>
Behaves like a MultiResultVec when an endpoint result.
impl<SA, T> TypeAbi for QueueMapper<SA, T, CurrentStorage>
Behaves like a MultiResultVec when an endpoint result.
type Unmanaged = QueueMapper<SA, T>
Source§impl<SA, T> TypeAbi for SetMapper<SA, T, CurrentStorage>
Behaves like a MultiResultVec when an endpoint result.
impl<SA, T> TypeAbi for SetMapper<SA, T, CurrentStorage>
Behaves like a MultiResultVec when an endpoint result.
Source§impl<SA, T> TypeAbi for SingleValueMapper<SA, T, CurrentStorage>
impl<SA, T> TypeAbi for SingleValueMapper<SA, T, CurrentStorage>
Source§impl<SA, T> TypeAbi for UnorderedSetMapper<SA, T>
Behaves like a MultiResultVec when an endpoint result.
impl<SA, T> TypeAbi for UnorderedSetMapper<SA, T>
Behaves like a MultiResultVec when an endpoint result.
type Unmanaged = UnorderedSetMapper<SA, T>
Source§impl<SA, T> TypeAbi for VecMapper<SA, T, CurrentStorage>
Behaves like a MultiResultVec when an endpoint result.
impl<SA, T> TypeAbi for VecMapper<SA, T, CurrentStorage>
Behaves like a MultiResultVec when an endpoint result.