protospec_build/ast/declaration/
mod.rs

1use super::*;
2
3mod type_declaration;
4pub use type_declaration::*;
5
6mod import_declaration;
7pub use import_declaration::*;
8
9mod ffi_declaration;
10pub use ffi_declaration::*;
11
12mod const_declaration;
13pub use const_declaration::*;
14
15#[derive(Clone, Serialize, Deserialize)]
16pub enum Declaration {
17    Type(TypeDeclaration),
18    Import(ImportDeclaration),
19    Ffi(FfiDeclaration),
20    Const(ConstDeclaration),
21}
22
23impl Node for Declaration {
24    fn span(&self) -> &Span {
25        match self {
26            Declaration::Type(x) => x.span(),
27            Declaration::Import(x) => x.span(),
28            Declaration::Ffi(x) => x.span(),
29            Declaration::Const(x) => x.span(),
30        }
31    }
32}