tinywasm/store/global.rs
1use crate::interpreter::TinyWasmValue;
2use core::cell::Cell;
3use tinywasm_types::*;
4
5/// A WebAssembly Global Instance
6///
7/// See <https://webassembly.github.io/spec/core/exec/runtime.html#global-instances>
8#[derive(Debug)]
9pub(crate) struct GlobalInstance {
10 pub(crate) value: Cell<TinyWasmValue>,
11 pub(crate) ty: GlobalType,
12 pub(crate) _owner: ModuleInstanceAddr, // index into store.module_instances
13}
14
15impl GlobalInstance {
16 pub(crate) fn new(ty: GlobalType, value: TinyWasmValue, owner: ModuleInstanceAddr) -> Self {
17 Self { ty, value: value.into(), _owner: owner }
18 }
19}