pub struct Replay {
seen: Mutex<SpentKeys>,
kept: Option<SpentStore>,
}Expand description
Proofs already spent, each until its own expiry.
Swept on every spend rather than on a schedule: a create is rare enough that walking the window costs nothing, and the window is then never holding an entry it has stopped needing.
A deployment with a data directory keeps the window there too, so the proof a caller spent a second before a restart is still spent after it.
Fields§
§seen: Mutex<SpentKeys>§kept: Option<SpentStore>Implementations§
Source§impl Replay
impl Replay
Sourcepub fn kept_in(store: SpentStore) -> Result<Self, SideStoreError>
pub fn kept_in(store: SpentStore) -> Result<Self, SideStoreError>
A window kept in store, holding what it already had.
§Errors
SideStoreError for a kept file that is there and cannot be read.
It stops the boot: see didbot_pds::side_store.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Replay
impl RefUnwindSafe for Replay
impl Send for Replay
impl Sync for Replay
impl Unpin for Replay
impl UnsafeUnpin for Replay
impl UnwindSafe for Replay
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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