2.8 KiB
2.8 KiB
Built-In Packages
{{#include ../../links.md}}
Engine::new
creates an [Engine
] with the StandardPackage
loaded.
Engine::new_raw
creates an [Engine
] with no package loaded.
Package | Description | In Core |
In Standard |
---|---|---|---|
ArithmeticPackage |
arithmetic operators (e.g. + , - , * , / ) for numeric types that are not built in (e.g. u16 ) |
yes | yes |
BasicIteratorPackage |
numeric ranges (e.g. range(1, 10) ) |
yes | yes |
LogicPackage |
logical and comparison operators (e.g. == , > ) for numeric types that are not built in (e.g. u16 ) |
yes | yes |
BasicStringPackage |
basic string functions (e.g. print , debug , len ) that are not built in |
yes | yes |
BasicTimePackage |
basic time functions (e.g. [timestamps]) | yes | yes |
MoreStringPackage |
additional string functions, including converting common types to string | no | yes |
BasicMathPackage |
basic math functions (e.g. sin , sqrt ) |
no | yes |
BasicArrayPackage |
basic [array] functions (not available under no_index ) |
no | yes |
BasicMapPackage |
basic [object map] functions (not available under no_object ) |
no | yes |
BasicFnPackage |
basic methods for [function pointers]. | yes | yes |
CorePackage |
basic essentials | yes | yes |
StandardPackage |
standard library (default for Engine::new ) |
no | yes |
CorePackage
If only minimal functionalities are required, register the CorePackage
instead:
use rhai::Engine;
use rhai::packages::{Package, CorePackage};
let mut engine = Engine::new_raw();
let package = CorePackage::new();
// Register the package into the 'Engine' by converting it into a shared module.
engine.register_global_module(package.as_shared_module());