pub(crate) enum BackendGlobal {
Sys(Global),
}Variants§
Implementations§
Source§impl BackendGlobal
impl BackendGlobal
Sourcepub fn new(store: &mut impl AsStoreMut, val: Value) -> Self
pub fn new(store: &mut impl AsStoreMut, val: Value) -> Self
Sourcepub fn new_mut(store: &mut impl AsStoreMut, val: Value) -> Self
pub fn new_mut(store: &mut impl AsStoreMut, val: Value) -> Self
Sourcepub(crate) fn from_value(
store: &mut impl AsStoreMut,
val: Value,
mutability: Mutability,
) -> Result<Self, RuntimeError>
pub(crate) fn from_value( store: &mut impl AsStoreMut, val: Value, mutability: Mutability, ) -> Result<Self, RuntimeError>
Create a global with the initial Value and the provided Mutability.
Sourcepub fn ty(&self, store: &impl AsStoreRef) -> GlobalType
pub fn ty(&self, store: &impl AsStoreRef) -> GlobalType
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));Sourcepub fn get(&self, store: &mut impl AsStoreMut) -> Value
pub fn get(&self, store: &mut impl AsStoreMut) -> Value
Sourcepub fn set(
&self,
store: &mut impl AsStoreMut,
val: Value,
) -> Result<(), RuntimeError>
pub fn set( &self, store: &mut impl AsStoreMut, val: Value, ) -> Result<(), RuntimeError>
Sets a custom 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();pub(crate) fn from_vm_extern( store: &mut impl AsStoreMut, vm_extern: VMExternGlobal, ) -> Self
Sourcepub fn is_from_store(&self, store: &impl AsStoreRef) -> bool
pub fn is_from_store(&self, store: &impl AsStoreRef) -> bool
Checks whether this global can be used with the given context.
Sourcepub(crate) fn to_vm_extern(&self) -> VMExtern
pub(crate) fn to_vm_extern(&self) -> VMExtern
Create a VMExtern from self.
Trait Implementations§
Source§impl Clone for BackendGlobal
impl Clone for BackendGlobal
Source§fn clone(&self) -> BackendGlobal
fn clone(&self) -> BackendGlobal
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BackendGlobal
impl Debug for BackendGlobal
Source§impl From<BackendGlobal> for Global
impl From<BackendGlobal> for Global
Source§fn from(value: BackendGlobal) -> Self
fn from(value: BackendGlobal) -> Self
Converts to this type from the input type.
Source§impl From<Global> for BackendGlobal
impl From<Global> for BackendGlobal
Source§impl PartialEq for BackendGlobal
impl PartialEq for BackendGlobal
impl Eq for BackendGlobal
impl StructuralPartialEq for BackendGlobal
Auto Trait Implementations§
impl Freeze for BackendGlobal
impl RefUnwindSafe for BackendGlobal
impl Send for BackendGlobal
impl Sync for BackendGlobal
impl Unpin for BackendGlobal
impl UnwindSafe for BackendGlobal
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T> Upcastable for T
impl<T> Upcastable for T
§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref
§fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
upcast boxed dyn