pub trait Router: Send + Sync + 'static {
// Required methods
fn register(
&mut self,
patterns: &[&str],
index: usize
) -> Result<(), RegisterError>;
fn route(&self, routing_key: &str) -> Option<usize>;
// Provided method
fn finish(&mut self) { ... }
}