wiggle::wasmtime_crate::component

Trait Lower

pub unsafe trait Lower: ComponentType { }
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§

§

impl Lower for bool

§

impl Lower for char

§

impl Lower for f32

§

impl Lower for f64

§

impl Lower for i8

§

impl Lower for i16

§

impl Lower for i32

§

impl Lower for i64

§

impl Lower for str

§

impl Lower for u8

§

impl Lower for u16

§

impl Lower for u32

§

impl Lower for u64

§

impl Lower for ()

§

impl Lower for String

§

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

§

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

§

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

§

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

§

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

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

Implementors§

§

impl Lower for ResourceAny

§

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