Skip to main content

moxy_token/span/
range.rs

1use crate::Span;
2
3#[derive(Debug, Copy, Clone)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize))]
5pub struct RangeSpan {
6    start: Span,
7    end: Span,
8}
9
10impl RangeSpan {
11    #[inline]
12    pub fn new(start: Span, end: Span) -> Self {
13        Self { start, end }
14    }
15
16    #[inline]
17    pub fn start(&self) -> Span {
18        self.start
19    }
20
21    #[inline]
22    pub fn end(&self) -> Span {
23        self.end
24    }
25
26    #[inline]
27    pub fn span(&self) -> Span {
28        self.start.join(self.end)
29    }
30}
31
32impl From<RangeSpan> for Span {
33    #[inline]
34    fn from(value: RangeSpan) -> Self {
35        value.span()
36    }
37}