pub struct MachineStateDiff {
pub last: Option<usize>,
pub stack_push: Vec<MachineValue>,
pub stack_pop: usize,
pub reg_diff: Vec<(RegisterIndex, MachineValue)>,
pub prev_frame_diff: BTreeMap<usize, Option<MachineValue>>,
pub wasm_stack_push: Vec<WasmAbstractValue>,
pub wasm_stack_pop: usize,
pub wasm_inst_offset: usize,
}
Expand description
A diff of two MachineState
s.
A MachineStateDiff
can only be applied after the MachineStateDiff
its last
field
points to is already applied.
Fields§
§last: Option<usize>
Link to the previous diff this diff is based on, or None
if this is the first diff.
stack_push: Vec<MachineValue>
What values are pushed onto the stack?
stack_pop: usize
How many values are popped from the stack?
reg_diff: Vec<(RegisterIndex, MachineValue)>
Register diff.
prev_frame_diff: BTreeMap<usize, Option<MachineValue>>
Changes in the previous frame’s data.
wasm_stack_push: Vec<WasmAbstractValue>
Values pushed to the Wasm stack.
wasm_stack_pop: usize
§of values popped from the Wasm stack.
wasm_inst_offset: usize
Wasm instruction offset.
Implementations§
source§impl MachineStateDiff
impl MachineStateDiff
sourcepub fn _build_state(&self, m: &FunctionStateMap) -> MachineState
pub fn _build_state(&self, m: &FunctionStateMap) -> MachineState
Creates a MachineState
from the given &FunctionStateMap
.
Trait Implementations§
source§impl Clone for MachineStateDiff
impl Clone for MachineStateDiff
source§fn clone(&self) -> MachineStateDiff
fn clone(&self) -> MachineStateDiff
Returns a copy 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 MachineStateDiff
impl Debug for MachineStateDiff
source§impl Default for MachineStateDiff
impl Default for MachineStateDiff
source§fn default() -> MachineStateDiff
fn default() -> MachineStateDiff
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for MachineStateDiff
impl RefUnwindSafe for MachineStateDiff
impl Send for MachineStateDiff
impl Sync for MachineStateDiff
impl Unpin for MachineStateDiff
impl UnwindSafe for MachineStateDiff
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,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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