pub struct RouteTable<PeerID> { /* private fields */ }Implementations§
source§impl<PeerID: Hash + Eq> RouteTable<PeerID>
impl<PeerID: Hash + Eq> RouteTable<PeerID>
pub fn new(first_latency: bool, channel_num: usize) -> RouteTable<PeerID>
source§impl<PeerID: Hash + Eq> RouteTable<PeerID>
impl<PeerID: Hash + Eq> RouteTable<PeerID>
source§impl<PeerID: Hash + Eq + Clone> RouteTable<PeerID>
impl<PeerID: Hash + Eq + Clone> RouteTable<PeerID>
pub fn add_route_if_absent(&self, id: PeerID, route: Route) -> bool
pub fn add_route<R: Into<Route>>(&self, id: PeerID, route: R) -> bool
sourcepub fn update_read_time(&self, id: &PeerID, route_key: &RouteKey) -> bool
pub fn update_read_time(&self, id: &PeerID, route_key: &RouteKey) -> bool
Update the usage time of the route, routes that have not received data for a long time will be excluded
sourcepub fn remove_route(&self, id: &PeerID, route_key: &RouteKey)
pub fn remove_route(&self, id: &PeerID, route_key: &RouteKey)
Remove specified route
pub fn remove_all(&self, id: &PeerID)
pub fn get_id_by_route_key(&self, route_key: &RouteKey) -> Option<PeerID>
pub fn route(&self, id: &PeerID) -> Option<Vec<Route>>
pub fn route_one(&self, id: &PeerID) -> Option<Route>
pub fn route_one_p2p(&self, id: &PeerID) -> Option<Route>
pub fn route_to_id(&self, route_key: &RouteKey) -> Option<PeerID>
pub fn need_punch(&self, id: &PeerID) -> bool
pub fn no_need_punch(&self, id: &PeerID) -> bool
pub fn p2p_num(&self, id: &PeerID) -> usize
pub fn relay_num(&self, id: &PeerID) -> usize
sourcepub fn route_table(&self) -> Vec<(PeerID, Vec<Route>)>
pub fn route_table(&self) -> Vec<(PeerID, Vec<Route>)>
Return all routes
sourcepub fn route_table_p2p(&self) -> Vec<(PeerID, Route)>
pub fn route_table_p2p(&self) -> Vec<(PeerID, Route)>
Return all P2P routes
sourcepub fn route_table_one(&self) -> Vec<(PeerID, Route)>
pub fn route_table_one(&self) -> Vec<(PeerID, Route)>
Return to the first route
sourcepub fn route_key_table(&self) -> HashMap<RouteKey, Vec<PeerID>>
pub fn route_key_table(&self) -> HashMap<RouteKey, Vec<PeerID>>
Return to route_key -> Vec
pub fn route_table_ids(&self) -> Vec<PeerID>
pub fn route_table_min_metric(&self) -> Vec<(PeerID, Route)>
pub fn route_table_min_rtt(&self) -> Vec<(PeerID, Route)>
pub fn oldest_route(&self) -> Option<(PeerID, Route, Instant)>
Trait Implementations§
Auto Trait Implementations§
impl<PeerID> Freeze for RouteTable<PeerID>
impl<PeerID> !RefUnwindSafe for RouteTable<PeerID>
impl<PeerID> Send for RouteTable<PeerID>
impl<PeerID> Sync for RouteTable<PeerID>
impl<PeerID> Unpin for RouteTable<PeerID>
impl<PeerID> !UnwindSafe for RouteTable<PeerID>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)