Skip to main content

Input

Trait Input 

Source
pub trait Input {
    type Token: Copy + Eq;
    type Slice;
    type Checkpoint: Copy + Eq + Ord;

    // Required methods
    fn next_token(&mut self) -> Option<Self::Token>;
    fn peek_token(&self) -> Option<Self::Token>;
    fn slice_since(&self, cp: Self::Checkpoint) -> Self::Slice;
    fn checkpoint(&self) -> Self::Checkpoint;
    fn reset(&mut self, checkpoint: Self::Checkpoint);
    fn offset(&self) -> usize;
    fn remaining(&self) -> Self::Slice;
    fn is_eof(&self) -> bool;
}

Required Associated Types§

Required Methods§

Source

fn next_token(&mut self) -> Option<Self::Token>

1トークン消費して返す。EOF なら None。

Source

fn peek_token(&self) -> Option<Self::Token>

次のトークンを消費せずに返す。

Source

fn slice_since(&self, cp: Self::Checkpoint) -> Self::Slice

checkpoint から現在位置までの Slice を返す。

Source

fn checkpoint(&self) -> Self::Checkpoint

Source

fn reset(&mut self, checkpoint: Self::Checkpoint)

Source

fn offset(&self) -> usize

Source

fn remaining(&self) -> Self::Slice

Source

fn is_eof(&self) -> bool

Implementors§