pub struct Global { /* private fields */ }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.
If you’re familiar with Rust already you can think of a Global as a sort
of Rc<Cell<Val>>, more or less.
§Global and Clone
Globals are internally reference counted so you can clone a Global. The
cloning process only performs a shallow clone, so two cloned Global
instances are equivalent in their functionality.
Implementations§
Source§impl Global
impl Global
Sourcepub fn new(store: &Store, ty: GlobalType, val: Val) -> Result<Global>
pub fn new(store: &Store, ty: GlobalType, val: Val) -> Result<Global>
Creates a new WebAssembly global value with the provide type ty and
initial value val.
The store argument provided is used as a general global cache for
information, and otherwise the ty and val arguments are used to
initialize the global.
§Errors
Returns an error if the ty provided does not match the type of the
value val.
Sourcepub fn ty(&self) -> GlobalType
pub fn ty(&self) -> GlobalType
Returns the underlying type of this global.
Sourcepub fn mutability(&self) -> Mutability
pub fn mutability(&self) -> Mutability
Returns the underlying mutability of this global.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Global
impl !RefUnwindSafe for Global
impl !Send for Global
impl !Sync for Global
impl Unpin for Global
impl !UnwindSafe for Global
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more