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>
sourceunsafe fn bump(&mut self)
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
sourceunsafe fn slice(&mut self, start: BytePos, end: BytePos) -> &str
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.
sourcefn uncons_while<F>(&mut self, f: F) -> &str
fn uncons_while<F>(&mut self, f: F) -> &str
Takes items from stream, testing each one with predicate. returns the range of items which passed predicate.
Provided Methods§
sourcefn cur_as_ascii(&mut self) -> Option<u8>
fn cur_as_ascii(&mut self) -> Option<u8>
Returns None if it’s end of input or current character is not an ascii character.
Object Safety§
This trait is not object safe.