pub struct Call {
pub segment: u8,
pub nav: Nav,
pub node_field: Option<NonZeroU16>,
pub next: StepId,
pub target: StepId,
}Expand description
Call instruction for invoking definitions (recursion).
Fields§
§segment: u8Segment index (0-3).
Navigation to apply before jumping to target.
node_field: Option<NonZeroU16>Field constraint (None = no constraint).
next: StepIdReturn address (current segment).
target: StepIdCallee entry point (target segment from type_id).
Implementations§
Source§impl Call
impl Call
Sourcepub fn new(
nav: Nav,
node_field: Option<NonZeroU16>,
next: StepId,
target: StepId,
) -> Self
pub fn new( nav: Nav, node_field: Option<NonZeroU16>, next: StepId, target: StepId, ) -> Self
Create a new Call instruction.
Sourcepub fn to_bytes(&self) -> [u8; 8]
pub fn to_bytes(&self) -> [u8; 8]
Encode to 8-byte bytecode.
Header byte layout: segment(2) | node_kind(2) | opcode(4)
pub fn node_field(&self) -> Option<NonZeroU16>
pub fn next(&self) -> StepId
pub fn target(&self) -> StepId
Trait Implementations§
impl Copy for Call
impl Eq for Call
impl StructuralPartialEq for Call
Auto Trait Implementations§
impl Freeze for Call
impl RefUnwindSafe for Call
impl Send for Call
impl Sync for Call
impl Unpin for Call
impl UnwindSafe for Call
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.