Struct wasmi::GlobalInstance
source · pub struct GlobalInstance { /* private fields */ }
Expand description
Runtime representation of a global variable (or global
for short).
Global contains a value of a specified type and flag which specifies whether this global are mutable or immutable. Neither type of the value nor immutability can’t be changed after creation.
Attempt to change value of immutable global or to change type of
the value (e.g. assign I32
value to a global that was created with I64
type) will lead to an error.
Implementations§
source§impl GlobalInstance
impl GlobalInstance
sourcepub fn alloc(val: RuntimeValue, mutable: bool) -> GlobalRef
pub fn alloc(val: RuntimeValue, mutable: bool) -> GlobalRef
Allocate a global variable instance.
Since it is possible to export only immutable globals,
users likely want to set mutable
to false
.
sourcepub fn set(&self, val: RuntimeValue) -> Result<(), Error>
pub fn set(&self, val: RuntimeValue) -> Result<(), Error>
Change the value of this global variable.
Errors
Returns Err
if this global isn’t mutable or if
type of val
doesn’t match global’s type.
sourcepub fn get(&self) -> RuntimeValue
pub fn get(&self) -> RuntimeValue
Get the value of this global variable.
sourcepub fn is_mutable(&self) -> bool
pub fn is_mutable(&self) -> bool
Returns if this global variable is mutable.
Note: Imported and/or exported globals are always immutable.
sourcepub fn value_type(&self) -> ValueType
pub fn value_type(&self) -> ValueType
Returns value type of this global variable.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for GlobalInstance
impl Send for GlobalInstance
impl !Sync for GlobalInstance
impl Unpin for GlobalInstance
impl UnwindSafe for GlobalInstance
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.