Skip to main content

Lower

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".

Implementations on Foreign Types§

§

impl Lower for ()

§

impl Lower for Bytes

Available on crate feature component-model-bytes only.
§

impl Lower for BytesMut

Available on crate feature component-model-bytes only.
§

impl Lower for String

§

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<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<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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> Lower for (A1, A2, A3, A4, A5)
where A1: Lower, A2: Lower, A3: Lower, A4: Lower, A5: 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> Lower for (A1, A2, A3)
where A1: Lower, A2: Lower, A3: Lower,

§

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

§

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

§

impl<K, V> Lower for HashMap<K, V>
where K: Lower, V: Lower,

§

impl<K, V> Lower for TryHashMap<K, V>
where K: Lower, V: Lower,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

Implementors§

§

impl Lower for ErrorContext

§

impl Lower for FutureAny

§

impl Lower for ResourceAny

§

impl Lower for ResourceDynamic

§

impl Lower for StreamAny

§

impl<T> Lower for FutureReader<T>
where T: ComponentType,

§

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

§

impl<T> Lower for StreamReader<T>
where T: ComponentType,