pub trait NativeWasmType: Sized {
    type Abi: Copy + Debug;

    const WASM_TYPE: Type;
}
Expand description

NativeWasmType represents a Wasm type that has a direct representation on the host (hence the “native” term).

It uses the Rust Type system to automatically detect the Wasm type associated with a native Rust type.

use wasmer_types::{NativeWasmType, Type};

let wasm_type = i32::WASM_TYPE;
assert_eq!(wasm_type, Type::I32);

Note: This strategy will be needed later to automatically detect the signature of a Rust function.

Required Associated Types§

source

type Abi: Copy + Debug

The ABI for this type (i32, i64, f32, f64)

Required Associated Constants§

source

const WASM_TYPE: Type

Type for this NativeWasmType.

Implementations on Foreign Types§

source§

impl NativeWasmType for i32

source§

const WASM_TYPE: Type = Type::I32

§

type Abi = i32

source§

impl<T: NativeWasmType> NativeWasmType for Option<T>

source§

const WASM_TYPE: Type = T::WASM_TYPE

§

type Abi = <T as NativeWasmType>::Abi

source§

impl NativeWasmType for f64

source§

const WASM_TYPE: Type = Type::F64

§

type Abi = f64

source§

impl NativeWasmType for f32

source§

const WASM_TYPE: Type = Type::F32

§

type Abi = f32

source§

impl NativeWasmType for u128

source§

const WASM_TYPE: Type = Type::V128

§

type Abi = u128

source§

impl NativeWasmType for i64

source§

const WASM_TYPE: Type = Type::I64

§

type Abi = i64

Implementors§

source§

impl NativeWasmType for Memory32

source§

const WASM_TYPE: Type = <<Self as MemorySize>::Native as NativeWasmType>::WASM_TYPE

§

type Abi = <<Memory32 as MemorySize>::Native as NativeWasmType>::Abi

source§

impl NativeWasmType for Memory64

source§

const WASM_TYPE: Type = <<Self as MemorySize>::Native as NativeWasmType>::WASM_TYPE

§

type Abi = <<Memory64 as MemorySize>::Native as NativeWasmType>::Abi