pub trait RoutingPolicy<Ref, M>: Debug {
// Required methods
fn route(&self, members: &[&Ref], msg: M, logger: &Logger<Arc<Fuse<Async>>>);
fn boxed_clone(&self) -> Box<dyn RoutingPolicy<Ref, M> + Send + Sync>;
fn broadcast(&self) -> Option<&(dyn RoutingPolicy<Ref, M> + Send + Sync)>;
fn select(&self) -> Option<&(dyn RoutingPolicy<Ref, M> + Send + Sync)>;
}Expand description
A routing policy described how to route a given msg over
a given set of members
Required Methods§
Sourcefn route(&self, members: &[&Ref], msg: M, logger: &Logger<Arc<Fuse<Async>>>)
fn route(&self, members: &[&Ref], msg: M, logger: &Logger<Arc<Fuse<Async>>>)
Route the msg to the appropriate members
A logger should be provided to allow debugging and handle potential routing errors.
Sourcefn boxed_clone(&self) -> Box<dyn RoutingPolicy<Ref, M> + Send + Sync>
fn boxed_clone(&self) -> Box<dyn RoutingPolicy<Ref, M> + Send + Sync>
Create a boxed copy of this policy
Used to make trait objects of this policy cloneable