pub trait Input: Clone {
Show 15 methods // Required methods fn cur(&mut self) -> Option<char>; fn peek(&mut self) -> Option<char>; fn peek_ahead(&mut self) -> Option<char>; unsafe fn bump(&mut self); fn is_at_start(&self) -> bool; fn cur_pos(&mut self) -> BytePos; fn last_pos(&self) -> BytePos; unsafe fn slice(&mut self, start: BytePos, end: BytePos) -> &str; fn uncons_while<F>(&mut self, f: F) -> &str where F: FnMut(char) -> bool; fn find<F>(&mut self, f: F) -> Option<BytePos> where F: FnMut(char) -> bool; unsafe fn reset_to(&mut self, to: BytePos); fn is_str(&self, s: &str) -> bool; // Provided methods fn cur_as_ascii(&mut self) -> Option<u8> { ... } fn is_byte(&mut self, c: u8) -> bool { ... } fn eat_byte(&mut self, c: u8) -> bool { ... }
}

Required Methods§

fn cur(&mut self) -> Option<char>

fn peek(&mut self) -> Option<char>

fn peek_ahead(&mut self) -> Option<char>

unsafe fn bump(&mut self)

§Safety

This should be called only when cur() returns Some. i.e. when the Input is not empty.

fn is_at_start(&self) -> bool

fn cur_pos(&mut self) -> BytePos

fn last_pos(&self) -> BytePos

unsafe fn slice(&mut self, start: BytePos, end: BytePos) -> &str

§Safety
  • start should be less than or equal to end.
  • start and end should be in the valid range of input.

fn uncons_while<F>(&mut self, f: F) -> &str
where F: FnMut(char) -> bool,

Takes items from stream, testing each one with predicate. returns the range of items which passed predicate.

fn find<F>(&mut self, f: F) -> Option<BytePos>
where F: FnMut(char) -> bool,

This method modifies [last_pos()] and [cur_pos()].

unsafe fn reset_to(&mut self, to: BytePos)

§Safety
  • to be in the valid range of input.

fn is_str(&self, s: &str) -> bool

Implementors can override the method to make it faster.

s must be ASCII only.

Provided Methods§

fn cur_as_ascii(&mut self) -> Option<u8>

Returns None if it’s end of input or current character is not an ascii character.

fn is_byte(&mut self, c: u8) -> bool

Implementors can override the method to make it faster.

c must be ASCII.

fn eat_byte(&mut self, c: u8) -> bool

Implementors can override the method to make it faster.

c must be ASCII.

Object Safety§

This trait is not object safe.

Implementors§

§

impl<'a> Input for StringInput<'a>