pub struct Replay<E: Storage + Metrics, V: Codec> { /* private fields */ }Expand description
Owned replay reader over a Journal’s items.
Yields (section, offset, size, item) in order and repairs invalid trailing data as it is
encountered. Dropping the reader before it is exhausted destroys the journal (leaving later
sections unrepaired): recovery is re-initialization. Call Replay::finish on an exhausted
reader to get the journal back.
Implementations§
Source§impl<E: Storage + Metrics, V: CodecShared> Replay<E, V>
impl<E: Storage + Metrics, V: CodecShared> Replay<E, V>
Sourcepub async fn next(&mut self) -> Option<Result<(u64, u64, u32, V), Error>>
pub async fn next(&mut self) -> Option<Result<(u64, u64, u32, V), Error>>
Returns the next (section, offset, size, item), or None once every section is
exhausted.
An error ends the section that produced it, and iteration continues with the next section. Errors while mutating storage to repair a section, and Error::ReplayInterrupted, end the replay.
Auto Trait Implementations§
impl<E, V> !RefUnwindSafe for Replay<E, V>
impl<E, V> !UnwindSafe for Replay<E, V>
impl<E, V> Freeze for Replay<E, V>
impl<E, V> Send for Replay<E, V>
impl<E, V> Sync for Replay<E, V>
impl<E, V> Unpin for Replay<E, V>
impl<E, V> UnsafeUnpin for Replay<E, V>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more