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());