pub enum SelectionStrategy {
Weighted,
RoundRobin,
Random,
LowestLatency,
HighestSuccessRate,
TitForTat,
UtilityUcb,
}Expand description
Peer selection strategy
Variants§
Weighted
Select by score (success rate + RTT) - recommended
RoundRobin
Round-robin (ignores performance)
Random
Random selection
LowestLatency
Lowest RTT first
HighestSuccessRate
Highest success rate first
TitForTat
Tit-for-tat style utility (reciprocity + reliability + retaliation + exploration)
UtilityUcb
Utility + exploration (good/bad ratio + RTT/efficiency + UCB bonus)
Trait Implementations§
Source§impl Clone for SelectionStrategy
impl Clone for SelectionStrategy
Source§fn clone(&self) -> SelectionStrategy
fn clone(&self) -> SelectionStrategy
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SelectionStrategy
impl Debug for SelectionStrategy
Source§impl Default for SelectionStrategy
impl Default for SelectionStrategy
Source§fn default() -> SelectionStrategy
fn default() -> SelectionStrategy
Returns the “default value” for a type. Read more
Source§impl PartialEq for SelectionStrategy
impl PartialEq for SelectionStrategy
impl Copy for SelectionStrategy
impl Eq for SelectionStrategy
impl StructuralPartialEq for SelectionStrategy
Auto Trait Implementations§
impl Freeze for SelectionStrategy
impl RefUnwindSafe for SelectionStrategy
impl Send for SelectionStrategy
impl Sync for SelectionStrategy
impl Unpin for SelectionStrategy
impl UnsafeUnpin for SelectionStrategy
impl UnwindSafe for SelectionStrategy
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> 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<'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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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