Skip to main content

RecordHeader

Struct RecordHeader 

Source
pub struct RecordHeader {
    pub magic: u32,
    pub format_version: u16,
    pub record_type: u16,
    pub lsn: u64,
    pub tenant_id: u32,
    pub vshard_id: u16,
    pub payload_len: u32,
    pub crc32c: u32,
}
Expand description

WAL record header (fixed 30 bytes).

Fields§

§magic: u32

Magic number (WAL_MAGIC).

§format_version: u16

Format version for forward/backward compatibility.

§record_type: u16

Record type discriminant.

§lsn: u64

Log Sequence Number — monotonically increasing, globally unique.

§tenant_id: u32

Tenant ID for multi-tenant isolation.

§vshard_id: u16

Virtual shard ID for routing.

§payload_len: u32

Length of the payload following this header.

§crc32c: u32

CRC32C of the header (excluding this field) + payload.

Implementations§

Source§

impl RecordHeader

Source

pub fn to_bytes(&self) -> [u8; 30]

Serialize the header to a byte buffer.

Source

pub fn from_bytes(buf: &[u8; 30]) -> Self

Deserialize a header from a byte buffer.

Source

pub fn compute_checksum(&self, payload: &[u8]) -> u32

Compute the CRC32C over the header (excluding the crc32c field) + payload.

Source

pub fn logical_record_type(&self) -> u16

Get the logical record type (with encryption flag stripped).

Source

pub fn validate(&self, offset: u64) -> Result<()>

Validate this header’s magic and version.

Trait Implementations§

Source§

impl Clone for RecordHeader

Source§

fn clone(&self) -> RecordHeader

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for RecordHeader

Source§

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

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

impl PartialEq for RecordHeader

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Copy for RecordHeader

Source§

impl Eq for RecordHeader

Source§

impl StructuralPartialEq for RecordHeader

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more