pub struct Position {
pub line: u32,
pub column: u32,
}
Expand description
Position (line & column) in the source input.
Fields§
§line: u32
Line count
column: u32
Column count
Implementations§
Source§impl Position
impl Position
Sourcepub fn update_from_char(&mut self, ch: char) -> Self
pub fn update_from_char(&mut self, ch: char) -> Self
Updates the position. If ch == ‘\n’, increases line count and resets column count, otherwise just increases column count.
§Example
use simple_tokenizer::Position;
let mut pos = Position::starting();
assert_eq!(pos.update_from_char(' '), Position { line: 1, column: 2 });
assert_eq!(pos.update_from_char('\n'), Position { line: 2, column: 1 });
Sourcepub fn update_from_str(&mut self, s: &str) -> Self
pub fn update_from_str(&mut self, s: &str) -> Self
Updates the position.
Identical to calling update_from_char()
for every character of the string.
§Example
use simple_tokenizer::Position;
let mut pos = Position::starting();
assert_eq!(pos.update_from_str("line 1\nline 2\nlong line 3"), Position { line: 3, column: 12 });
assert_eq!(pos.update_from_str(""), Position { line: 3, column: 12 });
assert_eq!(pos.update_from_str("continuation"), Position { line: 3, column: 24 });
Trait Implementations§
impl Copy for Position
impl Eq for Position
impl StructuralPartialEq for Position
Auto Trait Implementations§
impl Freeze for Position
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnwindSafe for Position
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more