Skip to main content

CallBridge

Trait CallBridge 

Source
pub trait CallBridge {
    // Required methods
    fn arora_call(
        &mut self,
        module: &Uuid,
        call: Call,
    ) -> Result<CallResult, CallError>;
    fn arora_register_callable(
        &mut self,
        callable: Rc<dyn Callable>,
    ) -> CallableId;
    fn arora_unregister_callable(&mut self, callable_id: &CallableId);
    fn arora_call_indirect(
        &mut self,
        callable_id: &CallableId,
    ) -> Result<Value, CallError>;
}
Expand description

The interface a module uses to call back into its host (the engine, or a mock in tests). It lives here, in the interface layer, so module-shaped libraries can make host calls without depending on the engine crate.

Required Methods§

Source

fn arora_call( &mut self, module: &Uuid, call: Call, ) -> Result<CallResult, CallError>

Calls the given function, with the arguments provided via call.

Source

fn arora_register_callable(&mut self, callable: Rc<dyn Callable>) -> CallableId

Registers the given function in the executor and associates it to an identifier generated on the fly. The function is made available to every module by calling arora_dispatch_indirect(id: u64) -> Value.

Source

fn arora_unregister_callable(&mut self, callable_id: &CallableId)

Unregisters the function associated to the given identifier.

Source

fn arora_call_indirect( &mut self, callable_id: &CallableId, ) -> Result<Value, CallError>

Calls a callable that was registered.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§