Wasmtime
arrayref.h
Go to the documentation of this file.
1
7#ifndef WASMTIME_ARRAYREF_H
8#define WASMTIME_ARRAYREF_H
9
10#include <wasmtime/conf.h>
11
12#ifdef WASMTIME_FEATURE_GC
13
15#include <wasmtime/val.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
29typedef struct wasmtime_array_ref_pre wasmtime_array_ref_pre_t;
30
39WASM_API_EXTERN wasmtime_array_ref_pre_t *
41 const wasmtime_array_type_t *ty);
42
46WASM_API_EXTERN void
48
50static inline void wasmtime_arrayref_set_null(wasmtime_arrayref_t *ref) {
51 ref->store_id = 0;
52}
53
55static inline bool wasmtime_arrayref_is_null(const wasmtime_arrayref_t *ref) {
56 return ref->store_id == 0;
57}
58
74 const wasmtime_val_t *elem, uint32_t len, wasmtime_arrayref_t *out);
75
79WASM_API_EXTERN void
82
87
91WASM_API_EXTERN void
94
98WASM_API_EXTERN void
100 wasmtime_eqref_t *out);
101
111WASM_API_EXTERN wasmtime_error_t *
113 const wasmtime_arrayref_t *arrayref, uint32_t *out);
114
125WASM_API_EXTERN wasmtime_error_t *
127 const wasmtime_arrayref_t *arrayref, uint32_t index,
128 wasmtime_val_t *out);
129
140WASM_API_EXTERN wasmtime_error_t *
142 const wasmtime_arrayref_t *arrayref, uint32_t index,
143 const wasmtime_val_t *val);
144
145#ifdef __cplusplus
146} // extern "C"
147#endif
148
149#endif // WASMTIME_FEATURE_GC
150
151#endif // WASMTIME_ARRAYREF_H
WASM_API_EXTERN wasmtime_error_t * wasmtime_arrayref_new(wasmtime_context_t *context, const wasmtime_array_ref_pre_t *pre, const wasmtime_val_t *elem, uint32_t len, wasmtime_arrayref_t *out)
Allocate a new array instance.
struct wasmtime_array_ref_pre wasmtime_array_ref_pre_t
An opaque pre-allocated array layout for fast allocation.
Definition: arrayref.h:29
WASM_API_EXTERN wasmtime_array_ref_pre_t * wasmtime_array_ref_pre_new(wasmtime_context_t *context, const wasmtime_array_type_t *ty)
Create a new array pre-allocator.
WASM_API_EXTERN void wasmtime_arrayref_unroot(wasmtime_arrayref_t *ref)
Unroot an arrayref to allow garbage collection.
WASM_API_EXTERN void wasmtime_array_ref_pre_delete(wasmtime_array_ref_pre_t *pre)
Delete an array pre-allocator.
WASM_API_EXTERN void wasmtime_arrayref_to_anyref(const wasmtime_arrayref_t *arrayref, wasmtime_anyref_t *out)
Upcast an arrayref to an anyref.
WASM_API_EXTERN void wasmtime_arrayref_clone(const wasmtime_arrayref_t *arrayref, wasmtime_arrayref_t *out)
Clone an arrayref, creating a new root.
WASM_API_EXTERN wasmtime_error_t * wasmtime_arrayref_set(wasmtime_context_t *context, const wasmtime_arrayref_t *arrayref, uint32_t index, const wasmtime_val_t *val)
Set an element of an array.
WASM_API_EXTERN wasmtime_error_t * wasmtime_arrayref_len(wasmtime_context_t *context, const wasmtime_arrayref_t *arrayref, uint32_t *out)
Get the length of an array.
WASM_API_EXTERN wasmtime_error_t * wasmtime_arrayref_get(wasmtime_context_t *context, const wasmtime_arrayref_t *arrayref, uint32_t index, wasmtime_val_t *out)
Read an element from an array.
WASM_API_EXTERN void wasmtime_arrayref_to_eqref(const wasmtime_arrayref_t *arrayref, wasmtime_eqref_t *out)
Upcast an arrayref to an eqref.
Build-time defines for how the C API was built.
A WebAssembly value in the any hierarchy of GC types.
Definition: val.h:77
A WebAssembly arrayref value.
Definition: val.h:210
uint64_t store_id
Internal metadata.
Definition: val.h:212
An interior pointer into a wasmtime_store_t which is used as "context" for many functions.
A WebAssembly eqref value.
Definition: val.h:163
Errors generated by Wasmtime.
Container for different kinds of wasm values.
Definition: val.h:376
struct wasmtime_array_type wasmtime_array_type_t
An opaque handle to a WebAssembly array type definition.
Definition: types/arrayref.h:29