wasmer_types

Trait NativeWasmType

Source
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 Constants§

Source

const WASM_TYPE: Type

Type for this NativeWasmType.

Required Associated Types§

Source

type Abi: Copy + Debug

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

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 NativeWasmType for f32

Source§

const WASM_TYPE: Type = Type::F32

Source§

type Abi = f32

Source§

impl NativeWasmType for f64

Source§

const WASM_TYPE: Type = Type::F64

Source§

type Abi = f64

Source§

impl NativeWasmType for i32

Source§

const WASM_TYPE: Type = Type::I32

Source§

type Abi = i32

Source§

impl NativeWasmType for i64

Source§

const WASM_TYPE: Type = Type::I64

Source§

type Abi = i64

Source§

impl NativeWasmType for u32

Source§

const WASM_TYPE: Type = Type::I32

Source§

type Abi = u32

Source§

impl NativeWasmType for u64

Source§

const WASM_TYPE: Type = Type::I64

Source§

type Abi = u64

Source§

impl NativeWasmType for u128

Source§

const WASM_TYPE: Type = Type::V128

Source§

type Abi = u128

Source§

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

Source§

const WASM_TYPE: Type = T::WASM_TYPE

Source§

type Abi = <T as NativeWasmType>::Abi

Implementors§

Source§

impl NativeWasmType for Memory32

Source§

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

Source§

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

Source§

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