pub struct PeerCache { /* private fields */ }Expand description
In-memory-Cache PeerKey → PeerCapabilities.
Eine Instanz pro Participant; gelebte Lebensdauer entspricht dem
Participant selbst. Thread-Safety liefert der Aufrufer via
Arc<Mutex<PeerCache>> oder Arc<RwLock<PeerCache>> — der Cache
selbst ist intentional nicht thread-safe, weil pro-Tick
meist nur eine Writer-/Reader-Task ihn anfasst.
Implementations§
Source§impl PeerCache
impl PeerCache
Sourcepub fn insert(&mut self, key: PeerKey, caps: PeerCapabilities)
pub fn insert(&mut self, key: PeerKey, caps: PeerCapabilities)
Vollstaendiger Upsert. Ueberschreibt einen vorhandenen Eintrag
mit den neuen Capabilities. Fuer Teil-Updates
Self::update_partial nehmen.
Sourcepub fn get(&self, key: &PeerKey) -> Option<&PeerCapabilities>
pub fn get(&self, key: &PeerKey) -> Option<&PeerCapabilities>
Liest die Capabilities eines Peers.
Sourcepub fn update_partial(&mut self, key: PeerKey, update: &PeerCapabilities)
pub fn update_partial(&mut self, key: PeerKey, update: &PeerCapabilities)
Merged neue Informationen in den existierenden Eintrag. Ist der Peer neu → wird er eingefuegt.
Semantik siehe PeerCapabilities::merge_update.
Sourcepub fn forget(&mut self, key: &PeerKey) -> Option<PeerCapabilities>
pub fn forget(&mut self, key: &PeerKey) -> Option<PeerCapabilities>
Entfernt einen Peer aus dem Cache. Liefert die alten Caps falls vorhanden — praktisch fuers Logging bei Session-End.
Sourcepub fn iter(&self) -> impl Iterator<Item = (&PeerKey, &PeerCapabilities)>
pub fn iter(&self) -> impl Iterator<Item = (&PeerKey, &PeerCapabilities)>
Iterator ueber alle (PeerKey, PeerCapabilities)-Paare.