Trait rhai::packages::Package

source ·
pub trait Package {
    // Required methods
    fn init(module: &mut Module);
    fn as_shared_module(&self) -> Shared<Module>;

    // Provided methods
    fn init_engine(engine: &mut Engine) { ... }
    fn register_into_engine(&self, engine: &mut Engine) -> &Self { ... }
    fn register_into_engine_as(&self, engine: &mut Engine, name: &str) -> &Self { ... }
}
Expand description

Trait that all packages must implement.

Required Methods§

source

fn init(module: &mut Module)

Initialize the package. Functions should be registered into module here.

source

fn as_shared_module(&self) -> Shared<Module>

Get a reference to a shared module from this package.

Provided Methods§

source

fn init_engine(engine: &mut Engine)

Initialize the package with an Engine.

Perform tasks such as registering custom operators/syntax.

source

fn register_into_engine(&self, engine: &mut Engine) -> &Self

Register the package with an Engine.

Example
let mut engine = Engine::new_raw();
let package = CorePackage::new();

package.register_into_engine(&mut engine);
source

fn register_into_engine_as(&self, engine: &mut Engine, name: &str) -> &Self

Register the package with an Engine under a static namespace.

Example
let mut engine = Engine::new_raw();
let package = CorePackage::new();

package.register_into_engine_as(&mut engine, "core");

Implementors§