1*133a0ef4SChris Fallin //! wit-bindgen-generated host binding types.
2*133a0ef4SChris Fallin
3*133a0ef4SChris Fallin use wasmtime::{Result, ValType};
4*133a0ef4SChris Fallin
5*133a0ef4SChris Fallin wasmtime::component::bindgen!({
6*133a0ef4SChris Fallin path: "wit",
7*133a0ef4SChris Fallin world: "bytecodealliance:wasmtime/debug-main",
8*133a0ef4SChris Fallin imports: {
9*133a0ef4SChris Fallin // Everything is async, even the seemingly simple things
10*133a0ef4SChris Fallin // like unwrapping a Wasm value, because we need to access
11*133a0ef4SChris Fallin // the Store in many places and that is an async access
12*133a0ef4SChris Fallin // via channels within the debuggee.
13*133a0ef4SChris Fallin default: async | trappable
14*133a0ef4SChris Fallin },
15*133a0ef4SChris Fallin exports: {
16*133a0ef4SChris Fallin default: async,
17*133a0ef4SChris Fallin },
18*133a0ef4SChris Fallin with: {
19*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.debuggee": super::api::Debuggee,
20*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.event-future": super::api::EventFuture,
21*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.frame": super::api::Frame,
22*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.instance": wasmtime::Instance,
23*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.module": wasmtime::Module,
24*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.table": wasmtime::Table,
25*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.global": wasmtime::Global,
26*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.memory": wasmtime::Memory,
27*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.wasm-tag": wasmtime::Tag,
28*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.wasm-func": wasmtime::Func,
29*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.wasm-exception": super::api::WasmException,
30*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.wasm-value": super::api::WasmValue,
31*133a0ef4SChris Fallin
32*133a0ef4SChris Fallin "wasi": wasmtime_wasi::p2::bindings,
33*133a0ef4SChris Fallin },
34*133a0ef4SChris Fallin trappable_error_type: {
35*133a0ef4SChris Fallin "bytecodealliance:wasmtime/debuggee.error" => wasmtime::Error,
36*133a0ef4SChris Fallin },
37*133a0ef4SChris Fallin require_store_data_send: true,
38*133a0ef4SChris Fallin });
39*133a0ef4SChris Fallin
40*133a0ef4SChris Fallin use bytecodealliance::wasmtime::debuggee as wit;
41*133a0ef4SChris Fallin
val_type_to_wasm_type(vt: &ValType) -> Result<wit::WasmType>42*133a0ef4SChris Fallin pub(crate) fn val_type_to_wasm_type(vt: &ValType) -> Result<wit::WasmType> {
43*133a0ef4SChris Fallin match vt {
44*133a0ef4SChris Fallin ValType::I32 => Ok(wit::WasmType::WasmI32),
45*133a0ef4SChris Fallin ValType::I64 => Ok(wit::WasmType::WasmI64),
46*133a0ef4SChris Fallin ValType::F32 => Ok(wit::WasmType::WasmF32),
47*133a0ef4SChris Fallin ValType::F64 => Ok(wit::WasmType::WasmF64),
48*133a0ef4SChris Fallin ValType::V128 => Ok(wit::WasmType::WasmV128),
49*133a0ef4SChris Fallin ValType::Ref(rt) if rt.heap_type().is_exn() => Ok(wit::WasmType::WasmExnref),
50*133a0ef4SChris Fallin ValType::Ref(rt) if rt.heap_type().is_func() => Ok(wit::WasmType::WasmFuncref),
51*133a0ef4SChris Fallin ValType::Ref(_) => Err(wit::Error::UnsupportedType.into()),
52*133a0ef4SChris Fallin }
53*133a0ef4SChris Fallin }
54*133a0ef4SChris Fallin
wasm_type_to_val_type(wt: wit::WasmType) -> ValType55*133a0ef4SChris Fallin pub(crate) fn wasm_type_to_val_type(wt: wit::WasmType) -> ValType {
56*133a0ef4SChris Fallin match wt {
57*133a0ef4SChris Fallin wit::WasmType::WasmI32 => ValType::I32,
58*133a0ef4SChris Fallin wit::WasmType::WasmI64 => ValType::I64,
59*133a0ef4SChris Fallin wit::WasmType::WasmF32 => ValType::F32,
60*133a0ef4SChris Fallin wit::WasmType::WasmF64 => ValType::F64,
61*133a0ef4SChris Fallin wit::WasmType::WasmV128 => ValType::V128,
62*133a0ef4SChris Fallin wit::WasmType::WasmFuncref => ValType::FUNCREF,
63*133a0ef4SChris Fallin wit::WasmType::WasmExnref => ValType::EXNREF,
64*133a0ef4SChris Fallin }
65*133a0ef4SChris Fallin }
66