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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.