Struct miri::borrow_tracker::tree_borrows::tree::Node
source · pub(super) struct Node {
pub tag: BorTag,
pub parent: Option<UniIndex>,
pub children: SmallVec<[UniIndex; 4]>,
default_initial_perm: Permission,
pub debug_info: NodeDebugInfo,
}
Expand description
A node in the borrow tree. Each node is uniquely identified by a tag via
the nodes
map of Tree
.
Fields§
§tag: BorTag
The tag of this node.
parent: Option<UniIndex>
All tags except the root have a parent tag.
children: SmallVec<[UniIndex; 4]>
If the pointer was reborrowed, it has children.
default_initial_perm: Permission
Either Reserved
, Frozen
, or Disabled
, it is the permission this tag will
lazily be initialized to on the first access.
It is only ever Disabled
for a tree root, since the root is initialized to Active
by
its own separate mechanism.
debug_info: NodeDebugInfo
Some extra information useful only for debugging purposes
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Node
impl RefUnwindSafe for Node
impl !Send for Node
impl !Sync for Node
impl Unpin for Node
impl UnwindSafe for Node
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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: 136 bytes