pub struct HostState {
pub allocator: Option<FreeingBumpHeapAllocator>,
pub panic_message: Option<String>,
}
Expand description
The state required to construct a HostContext context. The context only lasts for one host call, whereas the state is maintained for the duration of a Wasm runtime call, which may make many different host calls that must share state.
Fields§
§allocator: Option<FreeingBumpHeapAllocator>
The allocator instance to keep track of allocated memory.
This is stored as an Option
as we need to temporarly set this to None
when we are
allocating/deallocating memory. The problem being that we can only mutable access caller
once.
panic_message: Option<String>
Implementations§
Source§impl HostState
impl HostState
Sourcepub fn new(allocator: FreeingBumpHeapAllocator) -> Self
pub fn new(allocator: FreeingBumpHeapAllocator) -> Self
Constructs a new HostState
.
Sourcepub fn take_panic_message(&mut self) -> Option<String>
pub fn take_panic_message(&mut self) -> Option<String>
Takes the error message out of the host state, leaving a None
in its place.
pub fn allocation_stats(&self) -> AllocationStats
Auto Trait Implementations§
impl Freeze for HostState
impl RefUnwindSafe for HostState
impl Send for HostState
impl Sync for HostState
impl Unpin for HostState
impl UnwindSafe for HostState
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
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)
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)
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.