5#ifndef WASMTIME_STRUCTREF_HH
6#define WASMTIME_STRUCTREF_HH
8#include <wasmtime/_structref_class.hh>
10#ifdef WASMTIME_FEATURE_GC
12#include <wasmtime/_anyref_class.hh>
13#include <wasmtime/_eqref_class.hh>
14#include <wasmtime/_val_class.hh>
18inline Result<StructRef> StructRef::create(Store::Context cx,
19 const StructRefPre &pre,
20 const std::vector<Val> &fields) {
23 cx.capi(), pre.capi(),
24 reinterpret_cast<const wasmtime_val_t *
>(fields.data()), fields.size(),
27 return Result<StructRef>(Error(err));
28 return Result<StructRef>(StructRef(out));
31inline Result<Val> StructRef::field(Store::Context cx,
size_t index)
const {
35 return Result<Val>(Error(err));
36 return Result<Val>(Val(out));
39inline Result<std::monostate>
40StructRef::set_field(Store::Context cx,
size_t index,
const Val &value)
const {
44 return Result<std::monostate>(Error(err));
45 return Result<std::monostate>(std::monostate{});
48inline AnyRef StructRef::to_anyref()
const {
54inline EqRef StructRef::to_eqref()
const {
WASM_API_EXTERN wasmtime_error_t * wasmtime_structref_set_field(wasmtime_context_t *context, const wasmtime_structref_t *structref, size_t index, const wasmtime_val_t *val)
Set a field of a struct.
WASM_API_EXTERN void wasmtime_structref_to_eqref(const wasmtime_structref_t *structref, wasmtime_eqref_t *out)
Upcast a structref to an eqref.
WASM_API_EXTERN wasmtime_error_t * wasmtime_structref_field(wasmtime_context_t *context, const wasmtime_structref_t *structref, size_t index, wasmtime_val_t *out)
Read a field from a struct.
WASM_API_EXTERN wasmtime_error_t * wasmtime_structref_new(wasmtime_context_t *context, const wasmtime_struct_ref_pre_t *pre, const wasmtime_val_t *fields, size_t nfields, wasmtime_structref_t *out)
Allocate a new struct instance.
WASM_API_EXTERN void wasmtime_structref_to_anyref(const wasmtime_structref_t *structref, wasmtime_anyref_t *out)
Upcast a structref to an anyref.
A WebAssembly value in the any hierarchy of GC types.
Definition: val.h:77
A WebAssembly eqref value.
Definition: val.h:163
A WebAssembly structref value.
Definition: val.h:187
Container for different kinds of wasm values.
Definition: val.h:376