1use serde::{Deserialize, Serialize};
2
3#[derive(Copy, Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4pub struct Location {
5 pub line: u32,
6 pub column: u32,
7}
8impl Location {
9 pub fn default() -> Location {
10 Location { line: 0, column: 0 }
11 }
12}
13
14#[derive(Copy, Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Range {
16 pub start: Location,
17 pub end: Location,
18}
19
20impl Range {
21 pub fn default() -> Range {
22 Range {
23 start: Default::default(),
24 end: Default::default(),
25 }
26 }
27 pub fn new(start_line: u32, start_column: u32, end_line: u32, end_column: u32) -> Range {
28 Range {
29 start: Location {
30 line: start_line,
31 column: start_column,
32 },
33 end: Location {
34 line: end_line,
35 column: end_column,
36 },
37 }
38 }
39}