pub struct ChangelogRef {
pub batch_offset: u32,
pub row_index: u32,
pub weight: i16,
/* private fields */
}Expand description
Zero-allocation changelog reference for Ring 0 hot path.
Instead of allocating a full ChangelogRecord, this stores
offsets into the event batch with the operation type.
Size: 12 bytes (u32 + u32 + i16 + u8 + padding)
Fields§
§batch_offset: u32Offset into the current batch
row_index: u32Row index within the batch
weight: i16Z-set weight (+1 or -1)
Implementations§
Source§impl ChangelogRef
impl ChangelogRef
Sourcepub fn new(
batch_offset: u32,
row_index: u32,
weight: i16,
operation: CdcOperation,
) -> Self
pub fn new( batch_offset: u32, row_index: u32, weight: i16, operation: CdcOperation, ) -> Self
Creates a new changelog reference.
Sourcepub fn update_before(batch_offset: u32, row_index: u32) -> Self
pub fn update_before(batch_offset: u32, row_index: u32) -> Self
Creates an update-before reference (retraction).
Sourcepub fn update_after(batch_offset: u32, row_index: u32) -> Self
pub fn update_after(batch_offset: u32, row_index: u32) -> Self
Creates an update-after reference.
Sourcepub fn operation(&self) -> CdcOperation
pub fn operation(&self) -> CdcOperation
Returns the CDC operation type.
Trait Implementations§
Source§impl Clone for ChangelogRef
impl Clone for ChangelogRef
Source§fn clone(&self) -> ChangelogRef
fn clone(&self) -> ChangelogRef
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 ChangelogRef
impl Debug for ChangelogRef
Source§impl PartialEq for ChangelogRef
impl PartialEq for ChangelogRef
impl Copy for ChangelogRef
impl Eq for ChangelogRef
impl StructuralPartialEq for ChangelogRef
Auto Trait Implementations§
impl Freeze for ChangelogRef
impl RefUnwindSafe for ChangelogRef
impl Send for ChangelogRef
impl Sync for ChangelogRef
impl Unpin for ChangelogRef
impl UnsafeUnpin for ChangelogRef
impl UnwindSafe for ChangelogRef
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.