pub struct PaidWatermarks { /* private fields */ }Expand description
In-memory index of every lane’s paid-cumulative watermark, keyed by
LaneKey, read by the redeemer to compute unredeemed = owed − paid
(ADR 003 § Tracking owed vs. paid). Written by the PoolRedeemed watcher,
which mirrors every update onto the durable LaneState::paid_cumulative row
in the same breath. The durable field is the source of truth; this cache is
rehydrated from it at bootstrap (PoolSettlementService::bootstrap) so a
restart carries forward redemptions that landed before the log-poller’s
persisted cursor, instead of re-submitting those lanes for silent on-chain
no-ops (#2052).
A std::sync::Mutex: the guard is only ever held to read/insert a single
entry, never across an .await.
Trait Implementations§
Source§impl Clone for PaidWatermarks
impl Clone for PaidWatermarks
Source§impl Debug for PaidWatermarks
impl Debug for PaidWatermarks
Auto Trait Implementations§
impl Freeze for PaidWatermarks
impl RefUnwindSafe for PaidWatermarks
impl Send for PaidWatermarks
impl Sync for PaidWatermarks
impl Unpin for PaidWatermarks
impl UnsafeUnpin for PaidWatermarks
impl UnwindSafe for PaidWatermarks
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.