protospec_build/ast/
mod.rs1use crate::Span;
2use serde::{Deserialize, Serialize};
3use std::fmt;
4
5pub trait Node {
6 fn span(&self) -> &Span;
7}
8
9macro_rules! impl_node {
10 ($name:ident) => {
11 impl Node for $name {
12 fn span(&self) -> &Span {
13 &self.span
14 }
15 }
16 };
17}
18
19mod program;
20pub use program::*;
21
22mod declaration;
23pub use declaration::*;
24
25mod types;
26pub use types::*;
27
28mod transform;
29pub use transform::*;
30
31mod field;
32pub use field::*;
33
34mod expression;
35pub use expression::*;