use napi_derive::napi;
use serde::Serialize;
#[napi(object)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize)]
pub struct Position {
pub line: u32,
pub column: u32,
pub offset: u32,
}
#[napi(object)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize)]
pub struct Span {
pub start: Position,
pub end: Position,
}
impl Span {
pub fn new(start: Position, end: Position) -> Self {
Self { start, end }
}
}
impl Position {
pub fn new(line: usize, column: usize, offset: usize) -> Self {
Self {
line: line.try_into().unwrap(),
column: column.try_into().unwrap(),
offset: offset.try_into().unwrap(),
}
}
}