teo_parser/ast/
argument_declaration.rs1use crate::ast::identifier::Identifier;
2use crate::ast::type_expr::TypeExpr;
3use crate::{declare_container_node, impl_container_node_defaults, node_child_fn};
4use crate::format::Writer;
5use crate::traits::node_trait::NodeTrait;
6use crate::traits::write::Write;
7
8declare_container_node!(ArgumentDeclaration,
9 pub(crate) name: usize,
10 pub(crate) name_optional: bool,
11 pub(crate) type_expr: usize
12);
13
14impl_container_node_defaults!(ArgumentDeclaration);
15
16impl ArgumentDeclaration {
17
18 node_child_fn!(name, Identifier);
19
20 node_child_fn!(type_expr, TypeExpr);
21}
22
23impl Write for ArgumentDeclaration {
24 fn write<'a>(&'a self, writer: &mut Writer<'a>) {
25 writer.write_children(self, self.children.values());
26 }
27}