Trait sp_runtime_interface::RIType[][src]

pub trait RIType {
    type FFIType: IntoValue + TryFromValue;
}

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.

Associated Types

type FFIType: IntoValue + TryFromValue[src]

The ffi type that is used to represent Self.

Loading content...

Implementations on Foreign Types

impl RIType for u8[src]

The type is passed directly.

type FFIType = u8

impl RIType for u16[src]

The type is passed directly.

type FFIType = u16

impl RIType for u32[src]

The type is passed directly.

type FFIType = u32

impl RIType for u64[src]

The type is passed directly.

type FFIType = u64

impl RIType for i8[src]

The type is passed directly.

type FFIType = i8

impl RIType for i16[src]

The type is passed directly.

type FFIType = i16

impl RIType for i32[src]

The type is passed directly.

type FFIType = i32

impl RIType for i64[src]

The type is passed directly.

type FFIType = i64

impl RIType for bool[src]

bool is passed as u8.

type FFIType = u8

impl<T> RIType for Vec<T>[src]

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.

type FFIType = u64

impl<T> RIType for [T][src]

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.

type FFIType = u64

impl RIType for [u8; 1][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 2][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 3][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 4][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 5][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 6][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 7][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 8][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 9][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 10][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 11][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 12][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 13][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 14][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 15][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 16][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 17][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 18][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 19][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 20][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 21][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 22][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 23][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 24][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 25][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 26][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 27][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 28][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 29][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 30][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 31][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 32][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 33][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 34][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 35][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 36][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 37][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 38][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 39][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 40][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 41][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 42][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 43][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 44][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 45][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 46][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 47][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 48][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 49][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 50][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 51][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 52][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 53][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 54][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 55][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 56][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 57][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 58][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 59][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 60][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 61][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 62][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 63][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 64][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 65][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 66][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 67][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 68][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 69][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 70][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 71][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 72][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 73][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 74][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 75][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 76][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 77][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 78][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 79][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 80][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 81][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 82][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 83][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 84][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 85][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 86][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 87][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 88][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 89][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 90][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 91][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 92][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 93][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 94][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 95][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for [u8; 96][src]

The type is passed as u32.

The u32 is the pointer to the array.

type FFIType = u32

impl RIType for str[src]

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.

type FFIType = u64

impl RIType for u128[src]

u128/i128 is passed as u32.

The u32 is a pointer to an [u8; 16] array.

type FFIType = u32

impl RIType for i128[src]

u128/i128 is passed as u32.

The u32 is a pointer to an [u8; 16] array.

type FFIType = u32

Loading content...

Implementors

impl<T: Codec> RIType for Codec<T>[src]

The type is passed as u64.

The u64 value is build by length 32bit << 32 | pointer 32bit

Self is encoded and the length and the pointer are taken from the encoded vector.

type FFIType = u64

impl<T: PassBy> RIType for T[src]

type FFIType = <T::PassBy as RIType>::FFIType

impl<T: PassByInner<Inner = I>, I: RIType> RIType for Inner<T, I>[src]

The type is passed as the inner type.

type FFIType = I::FFIType

impl<T: PointerType> RIType for Pointer<T>[src]

type FFIType = u32

impl<T: Copy + Into<u8> + TryFrom<u8>> RIType for Enum<T>[src]

The type is passed as u8.

The value is corresponds to the discriminant of the variant.

type FFIType = u8

Loading content...