pub trait Module: Module<InputMessage = InputMessage, OutputMessage = OutputMessage> + Sized {
type Options;
// Required method
fn start<'a>(
agent_data: AgentData,
module_interfaces: (ModuleInterface<InputMessage, OutputMessage>, Self::ModulePrivateInterface),
delegation_module_interface: ModuleInterface,
options: Self::Options,
) -> Result<BoxFuture<'a, ()>>;
}
Expand description
Trait to define the interface to transport module
Required Associated Types§
Required Methods§
Sourcefn start<'a>(
agent_data: AgentData,
module_interfaces: (ModuleInterface<InputMessage, OutputMessage>, Self::ModulePrivateInterface),
delegation_module_interface: ModuleInterface,
options: Self::Options,
) -> Result<BoxFuture<'a, ()>>
fn start<'a>( agent_data: AgentData, module_interfaces: (ModuleInterface<InputMessage, OutputMessage>, Self::ModulePrivateInterface), delegation_module_interface: ModuleInterface, options: Self::Options, ) -> Result<BoxFuture<'a, ()>>
Start a new transport 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.