pub trait DispatchRegistry<Engine, Address, Envelope, Payload>: Clone {
// Required methods
fn is_local(&self, addr: Address) -> bool;
fn register_remote_source(
&self,
source_engine: &Engine,
source_addr: Address,
);
fn validate_source(
&self,
envelope: &Envelope,
source_engine: &Engine,
) -> bool;
fn deserialize_payload(
&self,
envelope: &Envelope,
payload: Payload,
) -> Result<Payload, DeserializeError>;
fn route(&self, envelope: Envelope, payload: Payload) -> RouteOutcome;
}Required Methods§
fn is_local(&self, addr: Address) -> bool
fn register_remote_source(&self, source_engine: &Engine, source_addr: Address)
fn validate_source(&self, envelope: &Envelope, source_engine: &Engine) -> bool
fn deserialize_payload( &self, envelope: &Envelope, payload: Payload, ) -> Result<Payload, DeserializeError>
fn route(&self, envelope: Envelope, payload: Payload) -> RouteOutcome
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.