pub struct CacheChange {
pub sequence_number: SequenceNumber,
pub payload: Arc<[u8]>,
pub kind: ChangeKind,
pub key_hash: Option<[u8; 16]>,
}Expand description
Einzelner Cache-Eintrag.
payload wird als Arc<[u8]> gehalten — Cache, Writer-Build-
Datagram-Pfad und Reader-Delivery teilen sich eine einzige
Allocation. Das spart im Reliable-Writer-Tick den n-fachen
Vec::clone() pro Reader-Proxy (Perf-Audit F7/F8/F10, ~30-50 %
Throughput-Gewinn bei grossen Payloads).
Fields§
§sequence_number: SequenceNumberSequence-Number (writer-lokal eindeutig).
payload: Arc<[u8]>Nutzlast (serialisierter Sample), referenzgezaehlt.
kind: ChangeKindArt des Events.
key_hash: Option<[u8; 16]>Optionaler PID_KEY_HASH aus dem Inline-QoS (Spec §9.6.4.8).
Reader-Side: bei keyed Topics + ALIVE-Samples mit Inline-Hash
oder bei Lifecycle-Markern (Disposed/Unregistered) gefuellt
vom Reader-Pfad. Writer-Side: gesetzt vom Writer wenn der Pfad
den Hash entlang der Sample-Pipeline propagiert.
Implementations§
Source§impl CacheChange
impl CacheChange
Sourcepub fn alive(sn: SequenceNumber, payload: Vec<u8>) -> Self
pub fn alive(sn: SequenceNumber, payload: Vec<u8>) -> Self
Erstellt ein Alive-Change. Nimmt Vec<u8> entgegen und
konvertiert einmalig in Arc<[u8]>. Fuer Call-Sites, die die
Allocation bereits als Arc haben, gibt es Self::alive_arc.
Sourcepub fn lifecycle(sn: SequenceNumber, payload: Vec<u8>, kind: ChangeKind) -> Self
pub fn lifecycle(sn: SequenceNumber, payload: Vec<u8>, kind: ChangeKind) -> Self
Erstellt einen Lifecycle-Marker (Spec §8.2.1.2). payload ist die
Key-Only-Serialisierung der disposed/unregistered Instanz —
genau das, was als PID_KEY_HASH in der Inline-QoS landet.
Trait Implementations§
Source§impl Clone for CacheChange
impl Clone for CacheChange
Source§fn clone(&self) -> CacheChange
fn clone(&self) -> CacheChange
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CacheChange
impl Debug for CacheChange
Source§impl PartialEq for CacheChange
impl PartialEq for CacheChange
Source§fn eq(&self, other: &CacheChange) -> bool
fn eq(&self, other: &CacheChange) -> bool
self and other values to be equal, and is used by ==.