#[repr(C, u8)]pub enum RefTransition {
None,
Enter(RefId),
Exit(RefId),
}Expand description
Marks a transition as entering or exiting a definition reference.
A transition can hold at most one RefTransition. Sequences like
Enter(A) → Enter(B) require epsilon chains.
Layout: 1-byte discriminant + 1-byte padding + 2-byte RefId = 4 bytes, align 2.
Variants§
None
No definition boundary crossing.
Enter(RefId)
Push call frame with return transitions.
For Enter(ref_id) transitions, successors have special structure:
successors()[0]: definition entry point (where to jump)successors()[1..]: return transitions (stored in call frame)
Exit(RefId)
Pop frame, continue with stored return transitions.
Successors are ignored—returns come from the call frame pushed at Enter.
Implementations§
Trait Implementations§
Source§impl Clone for RefTransition
impl Clone for RefTransition
Source§fn clone(&self) -> RefTransition
fn clone(&self) -> RefTransition
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RefTransition
impl Debug for RefTransition
Source§impl Default for RefTransition
impl Default for RefTransition
Source§fn default() -> RefTransition
fn default() -> RefTransition
Returns the “default value” for a type. Read more
Source§impl PartialEq for RefTransition
impl PartialEq for RefTransition
impl Copy for RefTransition
impl Eq for RefTransition
impl StructuralPartialEq for RefTransition
Auto Trait Implementations§
impl Freeze for RefTransition
impl RefUnwindSafe for RefTransition
impl Send for RefTransition
impl Sync for RefTransition
impl Unpin for RefTransition
impl UnwindSafe for RefTransition
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.