wasmtime_c_api/types/
arrayref.rs1use crate::wasmtime_field_type_t;
2use std::mem::MaybeUninit;
3use wasmtime::ArrayType;
4
5#[derive(Clone)]
6pub struct wasmtime_array_type_t {
7 pub(crate) ty: ArrayType,
8}
9wasmtime_c_api_macros::declare_ty!(wasmtime_array_type_t);
10
11#[unsafe(no_mangle)]
12pub extern "C" fn wasmtime_array_type_new(
13 engine: &crate::wasm_engine_t,
14 field: &wasmtime_field_type_t,
15) -> Box<wasmtime_array_type_t> {
16 let ft = field.to_wasmtime();
17 let ty = ArrayType::new(&engine.engine, ft);
18 Box::new(wasmtime_array_type_t { ty })
19}
20
21#[unsafe(no_mangle)]
22pub extern "C" fn wasmtime_array_type_element(
23 ty: &wasmtime_array_type_t,
24 out: &mut MaybeUninit<wasmtime_field_type_t>,
25) {
26 out.write(ty.ty.field_type().into());
27}