1#[derive(Clone, Copy, Debug, Serialize, PartialEq, Eq, PartialOrd, Ord, Hash)]
2pub struct Span {
3 pub start: usize,
4 pub end: usize,
5}
6
7impl Span {
8 pub fn empty() -> Span {
10 Span { start: 0, end: 0 }
11 }
12
13 pub fn end(self) -> Span {
15 Self {
16 start: self.end,
17 end: self.end,
18 }
19 }
20}
21
22impl<'a> From<&'a Span> for Span {
23 fn from(value: &'a Span) -> Span {
24 Span {
25 start: value.start,
26 end: value.end,
27 }
28 }
29}
30
31impl From<(usize, usize)> for Span {
32 fn from(value: (usize, usize)) -> Self {
33 Span {
34 start: value.0,
35 end: value.1,
36 }
37 }
38}