pub struct ModuleSyntax {
pub imports: Vec<ImportDecl>,
pub iotas: Vec<Text>,
pub items: Vec<(Text, Expr)>,
pub locals: Vec<(Text, Expr)>,
pub main: Option<Expr>,
}Expand description
A module source’s top-level declarations: its imports and its const
declarations, in source order, and its items. The imports are the module’s
first frame slots — the const stage resolves, compiles and instantiates each
one, then instantiates this module against the results (see
crate::load_module). The iotas take no slot at all: an iota’s identity is
its instance plus its position, derived on reference (see
docs/done/2026-08-13_elly-modules-iotas.md).
Fields§
§imports: Vec<ImportDecl>The import declarations, in source order, which is frame-slot order.
iotas: Vec<Text>The names declared by const, in source order — the module’s iotas.
Sorted before they reach ModuleData, where the
order is the address space a member reference counts against.
items: Vec<(Text, Expr)>The name = body items, in source order, bodies unresolved.
locals: Vec<(Text, Expr)>The local name = body declarations, in source order, bodies unresolved
— the module’s private bindings. They are members like the items, and
differ only in not being searched by name from outside (see
docs/done/2026-08-13_elly-modules-local.md).
main: Option<Expr>What the module declared as __main, if anything — the reserved
moditem a runner evaluates and applies to the root capability.
It is a slot rather than an entry in items, and that is
what makes it unnameable: the member index space it stays out of is the
only thing a body’s reference or an outside M.name access can address.
See docs/done/2026-08-14_elly-run.md.
Trait Implementations§
Source§impl Clone for ModuleSyntax
impl Clone for ModuleSyntax
Source§fn clone(&self) -> ModuleSyntax
fn clone(&self) -> ModuleSyntax
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModuleSyntax
impl Debug for ModuleSyntax
Source§impl PartialEq for ModuleSyntax
impl PartialEq for ModuleSyntax
Source§fn eq(&self, other: &ModuleSyntax) -> bool
fn eq(&self, other: &ModuleSyntax) -> bool
self and other values to be equal, and is used by ==.