Struct wasmtime::Global [−][src]
#[repr(transparent)]pub struct Global(_);Expand description
A WebAssembly global value which can be read and written to.
A global in WebAssembly is sort of like a global variable within an
Instance. The global.get and global.set
instructions will modify and read global values in a wasm module. Globals
can either be imported or exported from wasm modules.
A Global “belongs” to the store that it was originally created within
(either via Global::new or via instantiating a Module). Operations
on a Global only work with the store it belongs to, and if another store
is passed in by accident then methods will panic.
Implementations
Creates a new WebAssembly global value with the provide type ty and
initial value val.
The store argument will be the owner of the Global returned. Using
the returned Global other items in the store may access this global.
For example this could be provided as an argument to
Instance::new or
Linker::define.
Errors
Returns an error if the ty provided does not match the type of the
value val, or if val comes from a different store than store.
Examples
let engine = Engine::default();
let mut store = Store::new(&engine, ());
let ty = GlobalType::new(ValType::I32, Mutability::Const);
let i32_const = Global::new(&mut store, ty, 1i32.into())?;
let ty = GlobalType::new(ValType::F64, Mutability::Var);
let f64_mut = Global::new(&mut store, ty, 2.0f64.into())?;
let module = Module::new(
&engine,
"(module
(global (import \"\" \"i32-const\") i32)
(global (import \"\" \"f64-mut\") (mut f64))
)"
)?;
let mut linker = Linker::new(&engine);
linker.define("", "i32-const", i32_const)?;
linker.define("", "f64-mut", f64_mut)?;
let instance = linker.instantiate(&mut store, &module)?;
// ...Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Global
impl UnwindSafe for Global
Blanket Implementations
Mutably borrows from an owned value. Read more