pub struct Ctx<'a, T> { /* private fields */ }Expand description
Context wrapper providing ergonomic access to store data and memory.
Used by typed host functions to access state and perform memory operations.
Implementations§
Source§impl<'a, T> Ctx<'a, T>
impl<'a, T> Ctx<'a, T>
Sourcepub fn caller_mut(&mut self) -> &mut Caller<'a, T>
pub fn caller_mut(&mut self) -> &mut Caller<'a, T>
Get the underlying wasmi Caller mutably
Sourcepub fn read_value(&mut self, ptr: i32, len: i32) -> Result<Value, LinkerError>
pub fn read_value(&mut self, ptr: i32, len: i32) -> Result<Value, LinkerError>
Read a Value from WASM memory using the Graph ABI
Sourcepub fn write_value_at(
&mut self,
out_ptr: i32,
out_cap: i32,
value: &Value,
) -> Result<i32, LinkerError>
pub fn write_value_at( &mut self, out_ptr: i32, out_cap: i32, value: &Value, ) -> Result<i32, LinkerError>
Write a Value to WASM memory at the specified location. Returns the number of bytes written.
The caller provides the output buffer location and capacity. Returns an error if the encoded data exceeds the capacity.
Sourcepub fn write_value(&mut self, value: &Value) -> Result<(i32, i32), LinkerError>
pub fn write_value(&mut self, value: &Value) -> Result<(i32, i32), LinkerError>
Write a Value to WASM memory using the Graph ABI (legacy method). Returns (ptr, len) of the written data.
Deprecated: Prefer write_value_at() with explicit buffer location.
Uses a fixed offset (16KB) for backward compatibility.
Sourcepub fn read_string(&mut self, ptr: i32, len: i32) -> Result<String, LinkerError>
pub fn read_string(&mut self, ptr: i32, len: i32) -> Result<String, LinkerError>
Read a string from WASM memory
Auto Trait Implementations§
impl<'a, T> Freeze for Ctx<'a, T>
impl<'a, T> !RefUnwindSafe for Ctx<'a, T>
impl<'a, T> Send for Ctx<'a, T>where
T: Send,
impl<'a, T> Sync for Ctx<'a, T>where
T: Sync,
impl<'a, T> Unpin for Ctx<'a, T>
impl<'a, T> UnsafeUnpin for Ctx<'a, T>
impl<'a, T> !UnwindSafe for Ctx<'a, T>
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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