Skip to main content

omena_parser/
spans.rs

1//! Serializable parser span and range records.
2//!
3//! Parser summaries use these byte/line/column records at crate boundaries
4//! instead of exposing cstree-specific range types.
5
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize, Default)]
9#[serde(rename_all = "camelCase")]
10pub struct ParserByteSpanV0 {
11    pub start: usize,
12    pub end: usize,
13}
14
15#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize, Default)]
16#[serde(rename_all = "camelCase")]
17pub struct ParserPositionV0 {
18    pub line: usize,
19    pub character: usize,
20}
21
22#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize, Default)]
23#[serde(rename_all = "camelCase")]
24pub struct ParserRangeV0 {
25    pub start: ParserPositionV0,
26    pub end: ParserPositionV0,
27}