Struct wasmedge_sys::Global
source · pub struct Global { /* private fields */ }
Expand description
Defines a WebAssembly global variable, which stores a single value of the given type and a flag indicating whether it is mutable or not.
Implementations§
source§impl Global
impl Global
sourcepub fn create(ty: &GlobalType, val: WasmValue) -> WasmEdgeResult<Self>
pub fn create(ty: &GlobalType, val: WasmValue) -> WasmEdgeResult<Self>
Creates a new Global instance to be associated with the given GlobalType and WasmValue.
The type of the given WasmValue must be matched with GlobalType; otherwise, it causes a failure. For example, WasmValue::I32(520)
conflicts with a GlobalType with a value type defined as ValType::F32
.
Errors
- If fail to create the Global instance, then WasmEdgeError::Global(GlobalError::Create)(crate::error::GlobalError) is returned.
sourcepub fn ty(&self) -> WasmEdgeResult<GlobalType>
pub fn ty(&self) -> WasmEdgeResult<GlobalType>
sourcepub fn set_value(&mut self, val: WasmValue) -> WasmEdgeResult<()>
pub fn set_value(&mut self, val: WasmValue) -> WasmEdgeResult<()>
Sets the value of the Global instance.
Notice that only the Global instance of Mutability::Var type can be set a new value. Setting a new value for a Global of Mutability::Const causes a failure.
Argument
val
- The new wasm value to be set.
Errors
If fail to set value, then an error is returned.
Example
use wasmedge_sys::{Global, GlobalType, WasmValue};
use wasmedge_types::{ValType, Mutability};
// create a GlobalType instance
let ty = GlobalType::create(ValType::F32, Mutability::Var).expect("fail to create a GlobalType");
// create a Global instance
let mut global = Global::create(&ty, WasmValue::from_f32(3.1415)).expect("fail to create a Global");
global.set_value(WasmValue::from_f32(314.15)).expect("fail to set a new value for a Global");
assert_eq!(global.get_value().to_f32(), 314.15);
sourcepub fn as_ptr(&self) -> *const WasmEdge_GlobalInstanceContext
Available on crate feature ffi
only.
pub fn as_ptr(&self) -> *const WasmEdge_GlobalInstanceContext
ffi
only.Provides a raw pointer to the inner global context.
Trait Implementations§
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§
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