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) { ... }
}