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}