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
11impl From<ArrayType> for wasmtime_array_type_t {
12 fn from(ty: ArrayType) -> Self {
13 Self { ty }
14 }
15}
16
17#[unsafe(no_mangle)]
18pub extern "C" fn wasmtime_array_type_new(
19 engine: &crate::wasm_engine_t,
20 field: &wasmtime_field_type_t,
21) -> Box<wasmtime_array_type_t> {
22 let ft = field.to_wasmtime();
23 let ty = ArrayType::new(&engine.engine, ft);
24 Box::new(wasmtime_array_type_t { ty })
25}
26
27#[unsafe(no_mangle)]
28pub extern "C" fn wasmtime_array_type_element(
29 ty: &wasmtime_array_type_t,
30 out: &mut MaybeUninit<wasmtime_field_type_t>,
31) {
32 out.write(ty.ty.field_type().into());
33}