protospec_build/ast/declaration/
mod.rs1use 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}