pub trait Module: Module<InputMessage = InputMessage, OutputMessage = OutputMessage> + Sized {
type Options;
// Required method
fn start(
agent_data: AgentData,
module_interfaces: (ModuleInterface, Self::ModulePrivateInterface),
execution_interface: ModuleInterface,
options: Self::Options,
) -> impl Future<Output = ()> + Send + 'static;
}
Expand description
Trait to define the interface to decision module
Required Associated Types§
Required Methods§
Sourcefn start(
agent_data: AgentData,
module_interfaces: (ModuleInterface, Self::ModulePrivateInterface),
execution_interface: ModuleInterface,
options: Self::Options,
) -> impl Future<Output = ()> + Send + 'static
fn start( agent_data: AgentData, module_interfaces: (ModuleInterface, Self::ModulePrivateInterface), execution_interface: ModuleInterface, options: Self::Options, ) -> impl Future<Output = ()> + Send + 'static
Create a new delegation module
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.