Struct wasmer::Global

source ·
pub struct Global { /* private fields */ }
Expand description

A WebAssembly global instance.

A global instance is the runtime representation of a global variable. It consists of an individual value and a flag indicating whether it is mutable.

Spec: https://webassembly.github.io/spec/core/exec/runtime.html#global-instances

Implementations§

Create a new Global with the initial value Value.

Example
let g = Global::new(&mut store, Value::I32(1));

assert_eq!(g.get(&mut store), Value::I32(1));
assert_eq!(g.ty(&mut store).mutability, Mutability::Const);

Create a mutable Global with the initial value Value.

Example
let g = Global::new_mut(&mut store, Value::I32(1));

assert_eq!(g.get(&mut store), Value::I32(1));
assert_eq!(g.ty(&mut store).mutability, Mutability::Var);

Returns the GlobalType of the Global.

Example
let c = Global::new(&mut store, Value::I32(1));
let v = Global::new_mut(&mut store, Value::I64(1));

assert_eq!(c.ty(&mut store), GlobalType::new(Type::I32, Mutability::Const));
assert_eq!(v.ty(&mut store), GlobalType::new(Type::I64, Mutability::Var));

Retrieves the current value Value that the Global has.

Example
let g = Global::new(&mut store, Value::I32(1));

assert_eq!(g.get(&mut store), Value::I32(1));

Sets a custom value Value to the runtime Global.

Example
let g = Global::new_mut(&mut store, Value::I32(1));

assert_eq!(g.get(&mut store), Value::I32(1));

g.set(&mut store, Value::I32(2));

assert_eq!(g.get(&mut store), Value::I32(2));
Errors

Trying to mutate a immutable global will raise an error:

let g = Global::new(&mut store, Value::I32(1));

g.set(&mut store, Value::I32(2)).unwrap();

Trying to set a value of a incompatible type will raise an error:

let g = Global::new(&mut store, Value::I32(1));

// This results in an error: `RuntimeError`.
g.set(&mut store, Value::I64(2)).unwrap();

Checks whether this Global can be used with the given context.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Implementation of how to get the export corresponding to the implementing type from an Instance by name.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==.
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
The archived version of the pointer metadata for this type.
Converts some archived metadata to the pointer metadata for itself.
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Deserializes using the given deserializer
Compare self to key and return true if they are equal.

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
The type for metadata in pointers and references to Self.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
upcast ref
upcast mut ref
upcast boxed dyn
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more