Module
std::meta::module
contains methods on the built-in Module
type which represents a module in the source program.
Note that this type represents a module generally, it isn't limited to only mod my_submodule { ... }
declarations in the source program.
Methods
add_item
comptime fn add_item(self, item: Quoted) {}
Adds a top-level item (a function, a struct, a global, etc.) to the module.
Adding multiple items in one go is also valid if the Quoted
value has multiple items in it.
Note that the items are type-checked as if they are inside the module they are being added to.
functions
comptime fn functions(self) -> [FunctionDefinition] {}
Returns each function defined in the module.
has_named_attribute
comptime fn has_named_attribute<let N: u32>(self, name: str<N>) -> bool {}
Returns true if this module has a custom attribute with the given name.
is_contract
comptime fn is_contract(self) -> bool {}
true
if this module is a contract module (was declared via contract foo { ... }
).
name
comptime fn name(self) -> Quoted {}
Returns the name of the module.
structs
comptime fn structs(self) -> [StructDefinition] {}
Returns each struct defined in the module.
Trait Implementations
impl Eq for Module
impl Hash for Module
Note that each module is assigned a unique ID internally and this is what is used for equality and hashing. So even modules with identical names and contents may not be equal in this sense if they were originally different items in the source program.