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
sourceimpl Global
impl Global
sourcepub fn ty(&self) -> &GlobalType
pub fn ty(&self) -> &GlobalType
Returns the GlobalType
of the Global
.
Example
let c = Global::new(&store, Value::I32(1));
let v = Global::new_mut(&store, Value::I64(1));
assert_eq!(c.ty(), &GlobalType::new(Type::I32, Mutability::Const));
assert_eq!(v.ty(), &GlobalType::new(Type::I64, Mutability::Var));
sourcepub fn set(&self, val: Val) -> Result<(), RuntimeError>
pub fn set(&self, val: Val) -> Result<(), RuntimeError>
Sets a custom value Val
to the runtime Global.
Example
let g = Global::new_mut(&store, Value::I32(1));
assert_eq!(g.get(), Value::I32(1));
g.set(Value::I32(2));
assert_eq!(g.get(), Value::I32(2));
Errors
Trying to mutate a immutable global will raise an error:
let g = Global::new(&store, Value::I32(1));
g.set(Value::I32(2)).unwrap();
Trying to set a value of a incompatible type will raise an error:
let g = Global::new(&store, Value::I32(1));
// This results in an error: `RuntimeError`.
g.set(Value::I64(2)).unwrap();
Trait Implementations
sourceimpl<'a> Exportable<'a> for Global
impl<'a> Exportable<'a> for Global
sourcefn get_self_from_extern(_extern: &'a Extern) -> Result<&'a Self, ExportError>
fn get_self_from_extern(_extern: &'a Extern) -> Result<&'a Self, ExportError>
sourcefn into_weak_instance_ref(&mut self)
fn into_weak_instance_ref(&mut self)
Convert the extern internally to hold a weak reference to the InstanceRef
.
This is useful for preventing cycles, for example for data stored in a
type implementing WasmerEnv
. Read more
sourceimpl MemoryUsage for Global
impl MemoryUsage for Global
sourcefn size_of_val(&self, visited: &mut dyn MemoryUsageTracker) -> usize
fn size_of_val(&self, visited: &mut dyn MemoryUsageTracker) -> usize
Returns the size of the referenced value in bytes. Read more
Auto Trait Implementations
impl !RefUnwindSafe for Global
impl Send for Global
impl Sync for Global
impl Unpin for Global
impl !UnwindSafe for Global
Blanket Implementations
sourceimpl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
sourcepub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
pub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more