Skip to main content

DispatchRegistry

Trait DispatchRegistry 

Source
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§

Source

fn is_local(&self, addr: Address) -> bool

Source

fn register_remote_source(&self, source_engine: &Engine, source_addr: Address)

Source

fn validate_source(&self, envelope: &Envelope, source_engine: &Engine) -> bool

Source

fn deserialize_payload( &self, envelope: &Envelope, payload: Payload, ) -> Result<Payload, DeserializeError>

Source

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.

Implementors§