pub struct InlineFrameInfo {
pub function_id: u16,
pub resume_ip: usize,
pub local_mapping: Vec<(u16, u16)>,
pub local_kinds: Vec<SlotKind>,
pub stack_depth: u16,
}Expand description
Metadata for a single caller frame in a multi-frame inline deopt.
When a guard fails inside inlined code, the VM needs to reconstruct
the full call stack. Each InlineFrameInfo describes one caller frame.
Fields§
§function_id: u16Function ID of this caller frame.
resume_ip: usizeBytecode IP to resume at in this caller (the Call/CallValue instruction).
local_mapping: Vec<(u16, u16)>Map from ctx_buf position to bytecode local index for this frame.
local_kinds: Vec<SlotKind>SlotKind for each mapped local.
stack_depth: u16Stack depth for this frame.
Trait Implementations§
Source§impl Clone for InlineFrameInfo
impl Clone for InlineFrameInfo
Source§fn clone(&self) -> InlineFrameInfo
fn clone(&self) -> InlineFrameInfo
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 InlineFrameInfo
impl Debug for InlineFrameInfo
Source§impl<'de> Deserialize<'de> for InlineFrameInfo
impl<'de> Deserialize<'de> for InlineFrameInfo
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 InlineFrameInfo
impl RefUnwindSafe for InlineFrameInfo
impl Send for InlineFrameInfo
impl Sync for InlineFrameInfo
impl Unpin for InlineFrameInfo
impl UnsafeUnpin for InlineFrameInfo
impl UnwindSafe for InlineFrameInfo
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