microcad_lang/parse/module.rs
1// Copyright © 2025 The µcad authors <info@ucad.xyz>
2// SPDX-License-Identifier: AGPL-3.0-or-later
3
4use crate::{parse::*, parser::*, rc::*, syntax::*};
5
6impl Parse for Rc<ModuleDefinition> {
7 fn parse(pair: Pair) -> ParseResult<Self> {
8 Ok(Rc::new(ModuleDefinition {
9 doc: crate::find_rule_opt!(pair, doc_block),
10 visibility: crate::find_rule!(pair, visibility)?,
11 id: crate::find_rule!(pair, identifier)?,
12 body: crate::find_rule_opt!(pair, body),
13 }))
14 }
15}