pub struct PeerSelector { /* private fields */ }Expand description
Intelligent peer selector
Implementations§
Source§impl PeerSelector
impl PeerSelector
Sourcepub fn new(config: PeerSelectorConfig) -> Self
pub fn new(config: PeerSelectorConfig) -> Self
Create a new peer selector with default configuration
Sourcepub fn with_configs(
config: PeerSelectorConfig,
geo_config: GeoRouterConfig,
quality_config: QualityPredictorConfig,
) -> Self
pub fn with_configs( config: PeerSelectorConfig, geo_config: GeoRouterConfig, quality_config: QualityPredictorConfig, ) -> Self
Create with custom geo and quality configurations
Sourcepub fn add_peer_location(&self, peer_id: PeerId, location: GeoLocation)
pub fn add_peer_location(&self, peer_id: PeerId, location: GeoLocation)
Add or update peer location
Sourcepub fn remove_peer(&self, peer_id: &PeerId)
pub fn remove_peer(&self, peer_id: &PeerId)
Remove peer
Sourcepub fn update_peer_quality(
&self,
peer_id: PeerId,
latency_ms: f64,
bandwidth_mbps: f64,
success: bool,
)
pub fn update_peer_quality( &self, peer_id: PeerId, latency_ms: f64, bandwidth_mbps: f64, success: bool, )
Update peer quality metrics
Sourcepub fn select_peers(&self, criteria: &SelectionCriteria) -> Vec<SelectedPeer>
pub fn select_peers(&self, criteria: &SelectionCriteria) -> Vec<SelectedPeer>
Select best peers based on criteria
Sourcepub fn stats(&self) -> PeerSelectorStats
pub fn stats(&self) -> PeerSelectorStats
Get statistics
Auto Trait Implementations§
impl Freeze for PeerSelector
impl !RefUnwindSafe for PeerSelector
impl Send for PeerSelector
impl Sync for PeerSelector
impl Unpin for PeerSelector
impl !UnwindSafe for PeerSelector
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more