ActiveItem

Struct ActiveItem 

Source
pub struct ActiveItem {
    pub offset: usize,
    pub dot: usize,
    pub fun: RuntimeCncFun,
    pub seq: Vec<Sym>,
    pub args: Vec<PArg>,
    pub fid: FId,
    pub lbl: i32,
}
Expand description

Active item for parsing.

Represents an active parsing item in the chart, with position and components.

Fields§

§offset: usize

Offset.

§dot: usize

Dot position.

§fun: RuntimeCncFun

Function.

§seq: Vec<Sym>

Sequence.

§args: Vec<PArg>

Arguments.

§fid: FId

FId.

§lbl: i32

Label.

Implementations§

Source§

impl ActiveItem

Source

pub fn new( offset: usize, dot: usize, fun: RuntimeCncFun, seq: Vec<Sym>, args: Vec<PArg>, fid: FId, lbl: i32, ) -> Self

Creates a new active item.

§Arguments
  • offset - Offset.
  • dot - Dot position.
  • fun - Function.
  • seq - Sequence.
  • args - Arguments.
  • fid - FId.
  • lbl - Label.
§Examples
use gf_core::{ActiveItem, RuntimeCncFun, LinType, PArg, Sym};
let fun = RuntimeCncFun::new("Test".to_string(), LinType::Sym(vec![]));
let item = ActiveItem::new(0, 0, fun, vec![], vec![], 1, 0);
assert_eq!(item.offset, 0);
Source

pub fn is_equal(&self, other: &ActiveItem) -> bool

Checks equality.

Compares all fields for equality.

§Arguments
  • other - The other item.
§Returns

True if equal.

Source

pub fn shift_over_arg(&self, i: usize, fid: FId) -> ActiveItem

Shifts over argument.

Advances the dot and updates argument fid.

§Arguments
  • i - Argument index.
  • fid - New fid.
§Returns

Updated active item.

Source

pub fn shift_over_token(&self) -> ActiveItem

Shifts over token.

Advances the dot position.

§Returns

Updated active item.

Trait Implementations§

Source§

impl Clone for ActiveItem

Source§

fn clone(&self) -> ActiveItem

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ActiveItem

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ActiveItem

Source§

fn eq(&self, other: &ActiveItem) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ActiveItem

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.