//! Router trait definition.
//!//! Defines the interface for routing requests through the network,
//! handling path selection, onion encryption, and response decryption.
usecrate::network::types::{NetworkResponseCallback, Request};/// Router trait for sending requests through the network.
#[allow(async_fn_in_trait)]pubtraitRouter: Send + Sync {/// Sends a request through the network using this routing strategy.
async fnsend_request(&self,
request: Request,
callback: NetworkResponseCallback,
);/// Returns true if the router is ready to send requests.
fnis_ready(&self)->bool;/// Suspends the router (pauses path building, etc.).
fnsuspend(&self);/// Resumes the router after suspension.
fnresume(&self);}