pub struct VmSnapshot {
pub ip: usize,
pub stack: Vec<SerializableVMValue>,
pub locals: Vec<SerializableVMValue>,
pub module_bindings: Vec<SerializableVMValue>,
pub call_stack: Vec<SerializableCallFrame>,
pub loop_stack: Vec<SerializableLoopContext>,
pub timeframe_stack: Vec<Option<Timeframe>>,
pub exception_handlers: Vec<SerializableExceptionHandler>,
pub ip_blob_hash: Option<[u8; 32]>,
pub ip_local_offset: Option<usize>,
pub ip_function_id: Option<u16>,
}Fields§
§ip: usize§stack: Vec<SerializableVMValue>§locals: Vec<SerializableVMValue>§module_bindings: Vec<SerializableVMValue>§call_stack: Vec<SerializableCallFrame>§loop_stack: Vec<SerializableLoopContext>§timeframe_stack: Vec<Option<Timeframe>>§exception_handlers: Vec<SerializableExceptionHandler>§ip_blob_hash: Option<[u8; 32]>Content hash of the function blob that the top-level IP belongs to. Used for relocating the IP after recompilation.
ip_local_offset: Option<usize>Instruction offset within the function blob for the top-level IP.
Computed as ip - function_entry_point when saving; reconstructed
to absolute IP on restore. Only meaningful when ip_blob_hash is Some.
ip_function_id: Option<u16>Function ID that the top-level IP belongs to.
Used as a fallback when ip_blob_hash is not available.
Trait Implementations§
Source§impl Clone for VmSnapshot
impl Clone for VmSnapshot
Source§fn clone(&self) -> VmSnapshot
fn clone(&self) -> VmSnapshot
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 VmSnapshot
impl Debug for VmSnapshot
Source§impl<'de> Deserialize<'de> for VmSnapshot
impl<'de> Deserialize<'de> for VmSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for VmSnapshot
impl RefUnwindSafe for VmSnapshot
impl Send for VmSnapshot
impl Sync for VmSnapshot
impl Unpin for VmSnapshot
impl UnsafeUnpin for VmSnapshot
impl UnwindSafe for VmSnapshot
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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