Trait casbin::rhai::packages::Package

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

    // Provided methods
    fn init_engine(engine: &mut Engine) { ... }
    fn register_into_engine(&self, engine: &mut Engine) -> &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) -> Arc<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);

Object Safety§

This trait is not object safe.

Implementors§