use num_traits::ToPrimitive;
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct Span {
pub line: Option<u64>,
}
impl Span {
#[must_use]
pub const fn new() -> Self {
Self { line: None }
}
#[must_use]
pub const fn none() -> Self {
Self { line: None }
}
#[must_use]
pub fn from_line(line: impl ToPrimitive + Copy) -> Self {
Self { line: line.to_u64() }
}
}
impl<'a> From<Option<&'a csv::Position>> for Span {
#[must_use]
fn from(p: Option<&'a csv::Position>) -> Self {
Self {
line: p.map(csv::Position::line),
}
}
}