2.4 KiB
2.4 KiB
Module Resolvers
{{#include ../../links.md}}
When encountering an [import
] statement, Rhai attempts to resolve the module based on the path string.
Module Resolvers are service types that implement the ModuleResolver
trait.
There are a number of standard resolvers built into Rhai, the default being the FileModuleResolver
which simply loads a script file based on the path (with .rhai
extension attached) and execute it to form a module.
Built-in module resolvers are grouped under the rhai::module_resolvers
module namespace.
Module Resolver | Description |
---|---|
FileModuleResolver |
The default module resolution service, not available under [no_std ] or [WASM] builds. Loads a script file (based off the current directory) with .rhai extension.The base directory can be changed via the FileModuleResolver::new_with_path() constructor function.FileModuleResolver::create_module() loads a script file and returns a module. |
StaticModuleResolver |
Loads modules that are statically added. This can be used under [no_std ]. |
An [Engine
]'s module resolver is set via a call to Engine::set_module_resolver
:
// Use the 'StaticModuleResolver'
let resolver = rhai::module_resolvers::StaticModuleResolver::new();
engine.set_module_resolver(Some(resolver));
// Effectively disable 'import' statements by setting module resolver to 'None'
engine.set_module_resolver(None);