1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
use std::fmt; #[derive(Clone, Copy, Debug, PartialEq)] pub struct Position { pub line: u32, pub column: u32, } impl Default for Position { fn default() -> Self { Self { line: 1, column: 1 } } } impl fmt::Display for Position { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "({}, {})", self.line, self.column) } } #[derive(Clone, Copy, Debug, Default, PartialEq)] pub struct Span { pub start: Position, pub end: Position, }