Trait MessageRouter
pub trait MessageRouter: Send + Sync {
// Required methods
fn add_route(
&mut self,
pattern: TopicPattern,
handler: Box<dyn MessageHandler>,
priority: u32,
) -> Result<(), NerveError>;
fn remove_route(&mut self, pattern: &TopicPattern) -> Result<(), NerveError>;
fn route_message(
&self,
topic: &str,
message: &Message,
) -> Result<(), NerveError>;
fn statistics(&self) -> RoutingStatistics;
fn clear_routes(&mut self) -> Result<(), NerveError>;
}Expand description
Message router interface
Required Methods§
fn add_route(
&mut self,
pattern: TopicPattern,
handler: Box<dyn MessageHandler>,
priority: u32,
) -> Result<(), NerveError>
fn add_route( &mut self, pattern: TopicPattern, handler: Box<dyn MessageHandler>, priority: u32, ) -> Result<(), NerveError>
Add a route for a topic pattern
fn remove_route(&mut self, pattern: &TopicPattern) -> Result<(), NerveError>
fn remove_route(&mut self, pattern: &TopicPattern) -> Result<(), NerveError>
Remove a route
fn route_message(
&self,
topic: &str,
message: &Message,
) -> Result<(), NerveError>
fn route_message( &self, topic: &str, message: &Message, ) -> Result<(), NerveError>
Route a message to appropriate handlers
fn statistics(&self) -> RoutingStatistics
fn statistics(&self) -> RoutingStatistics
Get routing statistics
fn clear_routes(&mut self) -> Result<(), NerveError>
fn clear_routes(&mut self) -> Result<(), NerveError>
Clear all routes