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

source

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.

source

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.

source

pub fn get(&self) -> RuntimeValue

Get the value of this global variable.

source

pub fn is_mutable(&self) -> bool

Returns if this global variable is mutable.

Note: Imported and/or exported globals are always immutable.

source

pub fn value_type(&self) -> ValueType

Returns value type of this global variable.

Trait Implementations§

source§

impl Debug for GlobalInstance

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast for Twhere T: Any,

source§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.