sevenmark_parser/ast/
span.rs1use serde::{Deserialize, Serialize};
2use std::collections::BTreeMap;
3
4use super::Element;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct Span {
9 pub start: usize,
10 pub end: usize,
11}
12
13impl Span {
14 pub fn new(start: usize, end: usize) -> Self {
15 Self { start, end }
16 }
17 pub fn synthesized() -> Self {
19 Self { start: 0, end: 0 }
20 }
21}
22
23#[derive(Debug, Clone, Serialize)]
25pub struct Parameter {
26 #[cfg_attr(not(feature = "include_locations"), serde(skip_serializing))]
27 pub span: Span,
28 pub key: String,
29 pub value: Vec<Element>,
30}
31
32pub type Parameters = BTreeMap<String, Parameter>;