Skip to main content

CacheChange

Struct CacheChange 

Source
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: SequenceNumber

Sequence-Number (writer-lokal eindeutig).

§payload: Arc<[u8]>

Nutzlast (serialisierter Sample), referenzgezaehlt.

§kind: ChangeKind

Art 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

Source

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.

Source

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

Source§

fn clone(&self) -> CacheChange

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CacheChange

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for CacheChange

Source§

fn eq(&self, other: &CacheChange) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for CacheChange

Source§

impl StructuralPartialEq for CacheChange

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.