Trait sp_runtime_interface::RIType
source · pub trait RIType {
type FFIType: IntoValue + TryFromValue + WasmTy;
}
Expand description
Something that can be used by the runtime interface as type to communicate between wasm and the host.
Every type that should be used in a runtime interface function signature needs to implement this trait.
Required Associated Types§
Implementations on Foreign Types§
source§impl RIType for str
impl RIType for str
The type is passed as u64
.
The u64
value is build by length 32bit << 32 | pointer 32bit
The length and the pointer are taken directly from Self
.
source§impl<T> RIType for [T]
impl<T> RIType for [T]
The type is passed as u64
.
The u64
value is build by length 32bit << 32 | pointer 32bit
If T == u8
the length and the pointer are taken directly from Self
.
Otherwise Self
is encoded and the length and the pointer are taken from the encoded vector.
source§impl<T> RIType for Vec<T>
impl<T> RIType for Vec<T>
The type is passed as u64
.
The u64
value is build by length 32bit << 32 | pointer 32bit
If T == u8
the length and the pointer are taken directly from Self
.
Otherwise Self
is encoded and the length and the pointer are taken from the encoded vector.
source§impl<const N: usize> RIType for [u8; N]
impl<const N: usize> RIType for [u8; N]
The type is passed as u32
.
The u32
is the pointer to the array.
Implementors§
source§impl<T: Copy + Into<u8> + TryFrom<u8>> RIType for Enum<T>
impl<T: Copy + Into<u8> + TryFrom<u8>> RIType for Enum<T>
The type is passed as u32
.
The value is corresponds to the discriminant of the variant.
source§impl<T: PassByInner<Inner = I>, I: RIType> RIType for Inner<T, I>
impl<T: PassByInner<Inner = I>, I: RIType> RIType for Inner<T, I>
The type is passed as the inner type.