WalReader

Struct WalReader 

Source
pub struct WalReader { /* private fields */ }
Expand description

Read the write-ahead-log file produced by Bf-Tree.

Allows users to iterate over the log entries in the file and decide what to do with them.

Example

let reader = WalReader::new(&file, 4096);
for segment in reader.segment_iter() {
    let seg_iter = segment.iter();
    for (header, buffer) in seg_iter {
        ...
    }
}

Implementations§

Source§

impl WalReader

Source

pub fn new(path: impl AsRef<Path>, segment_size: usize) -> Self

Create a new WalReader instance.

The `segment_size`` should be the same as the one used to create the WriteAheadLog instance.

Todo: we should include segment_size as a field in the wal file, so that we don’t need to pass it in.

Source

pub fn segment_iter(&self) -> WalSegmentIter<'_>

Iterate through all the segments in the wal file.

Each segment contains multiple log entries, you can iterate through the log entries in each segment using the iter method on WalSegment.

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> 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, 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V