pub struct Frame {
pub frame_type: FrameType,
pub source_info: SourceInfo,
pub entry: Option<Arc<SourcePosition>>,
pub current: Option<Arc<SourcePosition>>,
pub args: Vec<String>,
pub current_line_offset: usize,
}Expand description
Represents a single frame in a CallStack.
Fields§
§frame_type: FrameTypeThe type of frame.
source_info: SourceInfoThe source information for the frame. The locations associated with AST nodes executed in this frame should be interpreted as being relative to this source info.
entry: Option<Arc<SourcePosition>>The location of the entry point into this frame, within the frame of
reference of source_info. May be None if the entry point is not known.
current: Option<Arc<SourcePosition>>Information about the currently executing location. For the topmost frame on
the stack, this represents the current execution location. For older frames,
this represents the site from which a control transfer was made to the next
younger frame. May be None if the current location is not known. When present,
it is relative to the frame of reference of source_info.
args: Vec<String>Positional arguments (not including $0). May not be present for all frames.
current_line_offset: usizeOptionally, indicates an additional line offset within the current source context.
Implementations§
Source§impl Frame
impl Frame
Sourcepub fn adjusted_source_info(&self) -> SourceInfo
pub fn adjusted_source_info(&self) -> SourceInfo
Returns the adjusted source info for this frame, combining the
frame’s source_info and current_line_offset, if present.
Sourcepub fn current_pos_as_source_info(&self) -> SourceInfo
pub fn current_pos_as_source_info(&self) -> SourceInfo
Returns the current position as a new SourceInfo, combining the
frame’s source_info and current position.
Sourcepub fn current_line(&self) -> Option<usize>
pub fn current_line(&self) -> Option<usize>
Returns the current line number.
Sourcepub fn current_frame_relative_line(&self) -> Option<usize>
pub fn current_frame_relative_line(&self) -> Option<usize>
Returns the current line number, relative to the frame’s entry.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Frame
impl RefUnwindSafe for Frame
impl Send for Frame
impl Sync for Frame
impl Unpin for Frame
impl UnsafeUnpin for Frame
impl UnwindSafe for Frame
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
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>
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>
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