wasmtime::component

Trait Lower

source
pub unsafe trait Lower: ComponentType { }
Available on crate features runtime and component-model only.
Expand description

Host types which can be passed to WebAssembly components.

This trait is implemented for all types that can be passed to components either as parameters of component exports or returns of component imports. This trait represents the ability to convert from the native host representation to the canonical ABI.

Built-in types to Rust such as Option<T> implement this trait as appropriate. For a mapping of component model to Rust types see ComponentType.

For user-defined types, for example record types mapped to Rust structs, this crate additionally has #[derive(Lower)].

Note that like ComponentType the definition of this trait is intended to be an internal implementation detail of Wasmtime at this time. It’s recommended to use the #[derive(Lower)] implementation instead.

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 Lower for bool

source§

impl Lower for char

source§

impl Lower for f32

source§

impl Lower for f64

source§

impl Lower for i8

source§

impl Lower for i16

source§

impl Lower for i32

source§

impl Lower for i64

source§

impl Lower for str

source§

impl Lower for u8

source§

impl Lower for u16

source§

impl Lower for u32

source§

impl Lower for u64

source§

impl Lower for ()

source§

impl Lower for String

source§

impl<A1> Lower for (A1,)
where A1: Lower,

source§

impl<A1, A2> Lower for (A1, A2)
where A1: Lower, A2: Lower,

source§

impl<A1, A2, A3> Lower for (A1, A2, A3)
where A1: Lower, A2: Lower, A3: Lower,

source§

impl<A1, A2, A3, A4> Lower for (A1, A2, A3, A4)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower,

source§

impl<A1, A2, A3, A4, A5> Lower for (A1, A2, A3, A4, A5)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower,

source§

impl<A1, A2, A3, A4, A5, A6> Lower for (A1, A2, A3, A4, A5, A6)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7> Lower for (A1, A2, A3, A4, A5, A6, A7)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8> Lower for (A1, A2, A3, A4, A5, A6, A7, A8)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower, A11: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower, A11: Lower, A12: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower, A11: Lower, A12: Lower, A13: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower, A11: Lower, A12: Lower, A13: Lower, A14: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower, A11: Lower, A12: Lower, A13: Lower, A14: Lower, A15: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower, A11: Lower, A12: Lower, A13: Lower, A14: Lower, A15: Lower, A16: Lower,

source§

impl<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> Lower for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: Lower, A6: Lower, A7: Lower, A8: Lower, A9: Lower, A10: Lower, A11: Lower, A12: Lower, A13: Lower, A14: Lower, A15: Lower, A16: Lower, A17: Lower,

source§

impl<T> Lower for Option<T>
where T: Lower,

source§

impl<T> Lower for [T]
where T: Lower,

source§

impl<T, E> Lower for Result<T, E>
where T: Lower, E: Lower,

source§

impl<T: Lower + ?Sized> Lower for &T

source§

impl<T: Lower + ?Sized> Lower for Box<T>

source§

impl<T: Lower + ?Sized> Lower for Rc<T>

source§

impl<T: Lower + ?Sized> Lower for Arc<T>

source§

impl<T: Lower> Lower for Vec<T>

Implementors§

source§

impl Lower for wasmtime::component::bindgen_examples::_3_interface_imports::example::interface_imports::logging::Level

Available on docsrs only.
source§

impl Lower for wasmtime::component::bindgen_examples::_4_imported_resources::example::imported_resources::logging::Level

Available on docsrs only.
source§

impl Lower for wasmtime::component::bindgen_examples::_6_exported_resources::exports::example::exported_resources::logging::Level

Available on docsrs only.
source§

impl Lower for ResourceAny

source§

impl<T: 'static> Lower for Resource<T>