Wasmtime
externref.h
Go to the documentation of this file.
1
7#ifndef WASMTIME_EXTERNREF_H
8#define WASMTIME_EXTERNREF_H
9
10#include <wasmtime/conf.h>
11
12#ifdef WASMTIME_FEATURE_GC
13
14#include <wasmtime/val.h>
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
22static inline void wasmtime_externref_set_null(wasmtime_externref_t *ref) {
23 ref->store_id = 0;
24}
25
31static inline bool wasmtime_externref_is_null(const wasmtime_externref_t *ref) {
32 return ref->store_id == 0;
33}
34
58WASM_API_EXTERN bool wasmtime_externref_new(wasmtime_context_t *context,
59 void *data,
60 void (*finalizer)(void *),
62
69WASM_API_EXTERN void *wasmtime_externref_data(wasmtime_context_t *context,
70 const wasmtime_externref_t *data);
71
81WASM_API_EXTERN void wasmtime_externref_clone(const wasmtime_externref_t *ref,
83
96
105 uint32_t raw,
107
118WASM_API_EXTERN uint32_t wasmtime_externref_to_raw(
119 wasmtime_context_t *context, const wasmtime_externref_t *ref);
120
121#ifdef __cplusplus
122} // extern "C"
123#endif
124
125#endif // WASMTIME_FEATURE_GC
126#endif // WASMTIME_EXTERNREF_H
Build-time defines for how the C API was built.
WASM_API_EXTERN void wasmtime_externref_clone(const wasmtime_externref_t *ref, wasmtime_externref_t *out)
Creates a new reference pointing to the same data that ref points to (depending on the configured col...
WASM_API_EXTERN void wasmtime_externref_from_raw(wasmtime_context_t *context, uint32_t raw, wasmtime_externref_t *out)
Converts a raw externref value coming from wasmtime_val_raw_t into a wasmtime_externref_t.
WASM_API_EXTERN void wasmtime_externref_unroot(wasmtime_externref_t *ref)
Unroots the pointer ref from the context provided.
WASM_API_EXTERN bool wasmtime_externref_new(wasmtime_context_t *context, void *data, void(*finalizer)(void *), wasmtime_externref_t *out)
Create a new externref value.
WASM_API_EXTERN void * wasmtime_externref_data(wasmtime_context_t *context, const wasmtime_externref_t *data)
Get an externref's wrapped data.
WASM_API_EXTERN uint32_t wasmtime_externref_to_raw(wasmtime_context_t *context, const wasmtime_externref_t *ref)
Converts a wasmtime_externref_t to a raw value suitable for storing into a wasmtime_val_raw_t.
An interior pointer into a wasmtime_store_t which is used as "context" for many functions.
A host-defined un-forgeable reference to pass into WebAssembly.
Definition: val.h:136
uint64_t store_id
Definition: val.h:139