pub(super) struct Node {
pub tag: BorTag,
pub parent: Option<UniIndex>,
pub children: SmallVec<[UniIndex; 4]>,
default_initial_perm: Permission,
default_initial_idempotent_foreign_access: IdempotentForeignAccess,
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.
default_initial_idempotent_foreign_access: IdempotentForeignAccess
The default initial (strongest) idempotent foreign access.
This participates in the invariant for LocationState::idempotent_foreign_access
in cases where there is no location state yet. See foreign_access_skipping.rs
,
and LocationState::idempotent_foreign_access
for more information
debug_info: NodeDebugInfo
Some extra information useful only for debugging purposes
Implementations§
Source§impl Node
impl Node
pub fn default_location_state(&self) -> LocationState
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,
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