Skip to main content

ReplayDriver

Struct ReplayDriver 

Source
pub struct ReplayDriver<R: WalReader> { /* private fields */ }
Expand description

A replay driver that loads events from a reader and feeds them to a reducer.

Implementations§

Source§

impl<R: WalReader> ReplayDriver<R>

Source

pub fn new(reader: R, reducer: ReplayReducer) -> Self

Creates a new replay driver with the given reader and reducer.

Source

pub fn run(&mut self) -> Result<(), WalReaderError>

Runs the replay, feeding events from the reader to the reducer.

Reads events sequentially from the reader and applies them to the reducer. If strict WAL corruption is encountered, returns WalReaderError::Corruption. If all events are processed successfully, returns Ok(()).

§Errors

Returns WalReaderError::Corruption if strict corruption is detected in the event stream.

Returns WalReaderError::IoError if an I/O error occurs during reading.

Returns WalReaderError::ReducerError if the reducer encounters an error applying an event (e.g., invalid transition, duplicate event).

Source

pub fn run_with_applied_count(&mut self) -> Result<u64, WalReaderError>

Runs replay and returns the authoritative count of applied replay events.

This is the counting seam used by recovery bootstrap metrics population.

Source

pub fn into_reducer(self) -> ReplayReducer

Returns the reducer after replay has completed.

Auto Trait Implementations§

§

impl<R> Freeze for ReplayDriver<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for ReplayDriver<R>
where R: RefUnwindSafe,

§

impl<R> Send for ReplayDriver<R>
where R: Send,

§

impl<R> Sync for ReplayDriver<R>
where R: Sync,

§

impl<R> Unpin for ReplayDriver<R>
where R: Unpin,

§

impl<R> UnsafeUnpin for ReplayDriver<R>
where R: UnsafeUnpin,

§

impl<R> UnwindSafe for ReplayDriver<R>
where R: UnwindSafe,

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> 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, 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