//! # Routing Layer
//!
//! Decides where messages go. The [`Router`](crate::routing::Router) trait takes a
//! [`MessageEnvelope`](crate::network::MessageEnvelope) and a
//! [`PeerTable`](crate::routing::PeerTable) and returns the
//! transport addresses that the message should be delivered to.
//!
//! ## Provided routers
//!
//! | Router | Description |
//! |--------|-------------|
//! | [`DirectRouter`](crate::routing::DirectRouter) | Point-to-point: look up the recipient in the peer table |
//! | [`BroadcastRouter`](crate::routing::BroadcastRouter) | Send to all known peers |
//! | [`ContentRouter`](crate::routing::ContentRouter) | Route based on topic subscriptions |
pub use BroadcastRouter;
pub use ContentRouter;
pub use DirectRouter;
pub use PeerTable;
pub use ;