Skip to main content

microcad_lang/eval/
module_definition.rs

1// Copyright © 2025-2026 The µcad authors <info@microcad.xyz>
2// SPDX-License-Identifier: AGPL-3.0-or-later
3
4use crate::eval::*;
5
6impl Eval for ModuleDefinition {
7    fn eval(&self, context: &mut EvalContext) -> EvalResult<Value> {
8        context.scope(
9            StackFrame::Module(self.id(), Default::default()),
10            |context| {
11                if let Some(body) = &self.body {
12                    body.statements.eval(context)
13                } else {
14                    Ok(Value::None)
15                }
16            },
17        )
18    }
19}