Skip to main content

SegmentCursor

Struct SegmentCursor 

Source
pub struct SegmentCursor { /* private fields */ }
Expand description

A cursor that tracks position within a segment slice during assembly.

The cursor is the core state machine of the assembler. It advances through segments as the MIG tree is matched against the input.

Implementations§

Source§

impl SegmentCursor

Source

pub fn new(total: usize) -> Self

Source

pub fn position(&self) -> usize

Current position in the segment list.

Source

pub fn remaining(&self) -> usize

Number of segments remaining.

Source

pub fn is_exhausted(&self) -> bool

Whether all segments have been consumed.

Source

pub fn advance(&mut self)

Advance the cursor by one segment.

Source

pub fn save(&self) -> usize

Save the current position for backtracking.

Source

pub fn restore(&mut self, saved: usize)

Restore to a previously saved position.

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> 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, 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.