1.3 KiB
Modules
{{#include ../../links.md}}
Rhai allows organizing functionalities ([functions], both Rust-based and scripted, and [variables]) into independent modules.
A module has the type rhai::Module
and holds a collection of [functions], [variables], [type
iterators] and sub-modules.
It may contain entirely Rust functions, or it may encapsulate a Rhai script together with all the [functions] and [variables] defined by that script.
Other scripts then load this module and use the [functions] and [variables] [exported][export
].
Alternatively, modules can be registered directly into an [Engine
] and made available to scripts,
either globally or under individual static module [namespaces][function namespaces].
Modules can be disabled via the [no_module
] feature.
Usage Patterns
Usage | API | Lookup | Sub-modules? | Variables? |
---|---|---|---|---|
Global module | Engine:: register_global_module |
simple name | ignored | yes |
Static module | Engine:: register_static_module |
namespace-qualified name | yes | yes |
Dynamic module | [import ] statement |
namespace-qualified name | yes | yes |