Skip to main content

LeanBatch

Struct LeanBatch 

Source
pub struct LeanBatch {
    pub base_offset: i64,
    pub producer_id: i64,
    pub transactional: bool,
    pub control: bool,
    pub records: Vec<LeanRecord>,
    /* private fields */
}
Expand description

One batch, with the facts that belong to the batch held once.

Fields§

§base_offset: i64§producer_id: i64§transactional: bool§control: bool

A control batch carries markers, not caller data. Batch-level in the format, which is why it is stored here and not per record.

§records: Vec<LeanRecord>

Implementations§

Source§

impl LeanBatch

Source

pub fn key(&self, record: &LeanRecord) -> Option<Bytes>

This record’s key, as a slice of the batch buffer.

Source

pub fn value(&self, record: &LeanRecord) -> Option<Bytes>

This record’s value, as a slice of the batch buffer.

The Bytes is built here rather than at decode time. Every slice of one buffer increments the same atomic refcount, so materialising two per record up front is two million read-modify-writes on one cache line for a million records — self-contended, and measurably as expensive as copying the bytes outright. A caller that skips a record never pays for it.

Source

pub fn headers( &self, record: &LeanRecord, ) -> Result<Vec<(Bytes, Option<Bytes>)>>

This record’s headers, parsed on demand.

Returns an empty vector when there are none, which is the common case and costs nothing — the region was never touched at decode time.

§Errors

Error::Codec if the header block is malformed.

Source

pub fn control_type(&self, record: &LeanRecord) -> Option<i16>

The control-marker type, for a control batch. 0 is abort.

Reads the marker’s key, which is where the type lives.

Trait Implementations§

Source§

impl Clone for LeanBatch

Source§

fn clone(&self) -> LeanBatch

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 LeanBatch

Source§

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

Formats the value using the given formatter. Read more

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.