Skip to main content

SegmentScanner

Struct SegmentScanner 

pub struct SegmentScanner { /* private fields */ }
Expand description

Scans a segment from a growing prefix of its bytes, so recovery reads only the valid records plus the first zero block after them instead of the whole preallocated file. Fed the complete image, it returns exactly what scan_segment returns.

Implementations§

§

impl SegmentScanner

pub fn start(bytes: &[u8], complete: bool) -> Result<Option<Self>, ScanError>

Reads the header. Ok(None) for a never-activated segment. A prefix shorter than the whole file must hold at least the header block.

pub fn header(&self) -> &SegmentHeader

pub fn advance( &mut self, bytes: &[u8], complete: bool, visit: &mut dyn FnMut(Lsn, RecordBuf), ) -> Progress

Continues the scan over bytes, the segment’s first bytes.len() bytes (each call passes a longer prefix of the same file). complete says bytes is the whole file. Records already visited are not visited again.

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.