pub trait Module {
type InputMessage;
type OutputMessage;
type ModulePrivateInterface: ModulePrivateInterface<Self::InputMessage, Self::OutputMessage>;
// Provided method
fn prepare_interfaces(
cap: usize,
) -> (ModuleInterface<Self::InputMessage, Self::OutputMessage>, Self::ModulePrivateInterface) { ... }
}Expand description
Define an agent module. Each module can receive message as inputs and send via its outputs. All the messages are broadcasted. Each module has a single thread used for handling the messages. If longer computation are needed, they can spawn other modules.
Required Associated Types§
type InputMessage
type OutputMessage
type ModulePrivateInterface: ModulePrivateInterface<Self::InputMessage, Self::OutputMessage>
Provided Methods§
sourcefn prepare_interfaces(
cap: usize,
) -> (ModuleInterface<Self::InputMessage, Self::OutputMessage>, Self::ModulePrivateInterface)
fn prepare_interfaces( cap: usize, ) -> (ModuleInterface<Self::InputMessage, Self::OutputMessage>, Self::ModulePrivateInterface)
This function is called ahead
Object Safety§
This trait is not object safe.