#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Span {
pub start: u32,
pub end: u32,
}
impl Span {
#[must_use]
pub fn new(start: usize, end: usize) -> Span {
Span {
start: u32::try_from(start).unwrap_or(u32::MAX),
end: u32::try_from(end).unwrap_or(u32::MAX),
}
}
#[must_use]
pub fn to(self, other: Span) -> Span {
Span {
start: self.start,
end: other.end.max(self.end),
}
}
}