Struct miri::borrow_tracker::FrameState
source · pub struct FrameState {
pub call_id: CallId,
pub protected_tags: SmallVec<[BorTag; 2]>,
}
Expand description
Per-call-stack-frame data for borrow tracking
Fields§
§call_id: CallId
The ID of the call this frame corresponds to.
If this frame is protecting any tags, they are listed here. We use this list to do
incremental updates of the global list of protected tags stored in the
stacked_borrows::GlobalState
upon function return, and if we attempt to pop a protected
tag, to identify which call is responsible for protecting the tag.
See Stack::item_popped
for more explanation.
This will contain one tag per reference passed to the function, so a size of 2 is enough for the vast majority of functions.
Trait Implementations§
source§impl Debug for FrameState
impl Debug for FrameState
source§impl VisitTags for FrameState
impl VisitTags for FrameState
Auto Trait Implementations§
impl RefUnwindSafe for FrameState
impl Send for FrameState
impl Sync for FrameState
impl Unpin for FrameState
impl UnwindSafe for FrameState
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 40 bytes