pub struct CachedPeer {
pub peer_id: PeerId,
pub addresses: Vec<SocketAddr>,
pub capabilities: PeerCapabilities,
pub first_seen: SystemTime,
pub last_seen: SystemTime,
pub last_attempt: Option<SystemTime>,
pub stats: ConnectionStats,
pub quality_score: f64,
pub source: PeerSource,
}Expand description
A cached peer entry with quality metrics
Fields§
§peer_id: PeerIdUnique peer identifier (serialized as bytes)
addresses: Vec<SocketAddr>Known socket addresses for this peer
capabilities: PeerCapabilitiesPeer capabilities and features
first_seen: SystemTimeWhen we first discovered this peer
last_seen: SystemTimeWhen we last successfully communicated with this peer
last_attempt: Option<SystemTime>When we last attempted to connect (success or failure)
stats: ConnectionStatsConnection statistics
quality_score: f64Computed quality score (0.0 to 1.0)
source: PeerSourceSource that added this peer
Implementations§
Source§impl CachedPeer
impl CachedPeer
Sourcepub fn new(
peer_id: PeerId,
addresses: Vec<SocketAddr>,
source: PeerSource,
) -> Self
pub fn new( peer_id: PeerId, addresses: Vec<SocketAddr>, source: PeerSource, ) -> Self
Create a new peer entry
Sourcepub fn record_success(&mut self, rtt_ms: u32, caps: Option<PeerCapabilities>)
pub fn record_success(&mut self, rtt_ms: u32, caps: Option<PeerCapabilities>)
Record a successful connection
Sourcepub fn record_failure(&mut self)
pub fn record_failure(&mut self)
Record a failed connection attempt
Sourcepub fn calculate_quality(&mut self, weights: &QualityWeights)
pub fn calculate_quality(&mut self, weights: &QualityWeights)
Calculate quality score based on metrics
Sourcepub fn success_rate(&self) -> f64
pub fn success_rate(&self) -> f64
Get success rate
Sourcepub fn merge_addresses(&mut self, other: &CachedPeer)
pub fn merge_addresses(&mut self, other: &CachedPeer)
Merge addresses from another peer entry
Trait Implementations§
Source§impl Clone for CachedPeer
impl Clone for CachedPeer
Source§fn clone(&self) -> CachedPeer
fn clone(&self) -> CachedPeer
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 CachedPeer
impl Debug for CachedPeer
Source§impl<'de> Deserialize<'de> for CachedPeer
impl<'de> Deserialize<'de> for CachedPeer
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CachedPeer
impl RefUnwindSafe for CachedPeer
impl Send for CachedPeer
impl Sync for CachedPeer
impl Unpin for CachedPeer
impl UnwindSafe for CachedPeer
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