pub struct MemoryBuyerPoolStore { /* private fields */ }Expand description
In-memory BuyerPoolStore for tests and the trait’s reference
semantics. Not durable — drops with the process. The runtime uses the
redb-backed impl in crates/node.
Implementations§
Trait Implementations§
Source§impl BuyerPoolStore for MemoryBuyerPoolStore
impl BuyerPoolStore for MemoryBuyerPoolStore
Source§fn load_all(&self) -> Result<BuyerLoad, StoreError>
fn load_all(&self) -> Result<BuyerLoad, StoreError>
Load every persisted buyer pool. Called once at bring-up to hydrate
the in-memory pool map and seed the reclaim sweep. Read more
Source§fn record(&self, state: &BuyerPoolState) -> Result<(), StoreError>
fn record(&self, state: &BuyerPoolState) -> Result<(), StoreError>
Persist (insert or overwrite) the state for one pool, keyed by
state.pool_id (primary) with state.owner maintained as a
secondary reuse index. MUST be durable before returning Ok. Read moreSource§fn forget(&self, owner: Address) -> Result<(), StoreError>
fn forget(&self, owner: Address) -> Result<(), StoreError>
Drop the persisted entry the owner index currently maps
owner to
(after the pool is reclaimed or closed), removing it from both the
primary table and the owner index. A no-op if no record exists. MUST
commit durably. Read moreSource§fn forget_if_pool(
&self,
owner: Address,
pool_id: PoolId,
) -> Result<bool, StoreError>
fn forget_if_pool( &self, owner: Address, pool_id: PoolId, ) -> Result<bool, StoreError>
Compare-and-delete: drop
owner’s entry only if the stored
record’s pool_id still equals pool_id. Returns true if a row was
deleted, false if the stored row was for a different pool (already
replaced by a newer open) or no row exists. Read moreSource§fn get_by_pool_id(
&self,
pool_id: PoolId,
) -> Result<Option<BuyerPoolState>, StoreError>
fn get_by_pool_id( &self, pool_id: PoolId, ) -> Result<Option<BuyerPoolState>, StoreError>
Point-lookup the live pool by its primary key, or
None if none is
tracked. Unlike Self::get_by_owner this needs no secondary index
hop. Read moreSource§fn get_by_owner(
&self,
owner: Address,
) -> Result<Option<BuyerPoolState>, StoreError>
fn get_by_owner( &self, owner: Address, ) -> Result<Option<BuyerPoolState>, StoreError>
Point-lookup the live pool for
owner, or None if none is tracked.
The open-pool trigger uses this to reuse an existing pool instead of
opening a new one. Read moreSource§fn advance_progress(
&self,
owner: Address,
pool_id: PoolId,
lane: LaneKey,
bytes: U256,
amount: U256,
) -> Result<AdvanceOutcome, StoreError>
fn advance_progress( &self, owner: Address, pool_id: PoolId, lane: LaneKey, bytes: U256, amount: U256, ) -> Result<AdvanceOutcome, StoreError>
Source§fn rebase_progress(
&self,
owner: Address,
pool_id: PoolId,
lane: LaneKey,
anchor: BuyerLaneProgress,
totals: BuyerLaneProgress,
) -> Result<AdvanceOutcome, StoreError>
fn rebase_progress( &self, owner: Address, pool_id: PoolId, lane: LaneKey, anchor: BuyerLaneProgress, totals: BuyerLaneProgress, ) -> Result<AdvanceOutcome, StoreError>
Atomically overwrite the committed progress for
lane inside owner’s
pool with anchor and advance it to totals
(BuyerPoolState::rebase_lane) — the same owner-index and pool_id
checks and the same single durable write transaction as
Self::advance_progress, without the monotonicity check against the
recorded progress. Never returns AdvanceOutcome::Regressed. Read moreSource§fn seed_progress(
&self,
owner: Address,
pool_id: PoolId,
lane: LaneKey,
bytes: U256,
amount: U256,
) -> Result<AdvanceOutcome, StoreError>
fn seed_progress( &self, owner: Address, pool_id: PoolId, lane: LaneKey, bytes: U256, amount: U256, ) -> Result<AdvanceOutcome, StoreError>
Atomically record
lane’s on-chain watermark in owner’s pool
(BuyerPoolState::seed_lane): the same owner-index and pool_id
checks and the same single durable write transaction as
Self::advance_progress. A lane new to the row moves its amount out
of BuyerPoolState::redeemed_elsewhere. Read moreSource§fn add_deposit(
&self,
owner: Address,
pool_id: PoolId,
additional: U256,
) -> Result<DepositOutcome, StoreError>
fn add_deposit( &self, owner: Address, pool_id: PoolId, additional: U256, ) -> Result<DepositOutcome, StoreError>
Source§fn delegate_lanes(
&self,
deployment: Deployment,
pool_id: PoolId,
signer: Address,
) -> Result<Vec<(Address, BuyerLaneProgress)>, StoreError>
fn delegate_lanes( &self, deployment: Deployment, pool_id: PoolId, signer: Address, ) -> Result<Vec<(Address, BuyerLaneProgress)>, StoreError>
The recorded progress of every lane
signer holds in pool_id on
deployment, as (provider, progress) pairs ordered by provider. Read moreSource§fn advance_delegate_progress(
&self,
deployment: Deployment,
lane: LaneKey,
totals: BuyerLaneProgress,
) -> Result<AdvanceOutcome, StoreError>
fn advance_delegate_progress( &self, deployment: Deployment, lane: LaneKey, totals: BuyerLaneProgress, ) -> Result<AdvanceOutcome, StoreError>
Atomically advance the delegate lane
lane on deployment to
totals, with the monotonicity rule of BuyerPoolState::advance_lane.
A lane with no recorded progress takes the totals as its first record.
Returns AdvanceOutcome::Advanced or AdvanceOutcome::Regressed.
MUST commit durably. Read moreSource§fn rebase_delegate_progress(
&self,
deployment: Deployment,
lane: LaneKey,
anchor: BuyerLaneProgress,
totals: BuyerLaneProgress,
) -> Result<AdvanceOutcome, StoreError>
fn rebase_delegate_progress( &self, deployment: Deployment, lane: LaneKey, anchor: BuyerLaneProgress, totals: BuyerLaneProgress, ) -> Result<AdvanceOutcome, StoreError>
Atomically overwrite the delegate lane
lane on deployment with
anchor and advance it to totals, with the rule of
BuyerPoolState::rebase_lane. The recorded lane is not read, so the
overwrite also replaces a record that cannot be decoded. Always returns
AdvanceOutcome::Advanced. MUST commit durably. Read moreSource§impl Debug for MemoryBuyerPoolStore
impl Debug for MemoryBuyerPoolStore
Auto Trait Implementations§
impl !Freeze for MemoryBuyerPoolStore
impl RefUnwindSafe for MemoryBuyerPoolStore
impl Send for MemoryBuyerPoolStore
impl Sync for MemoryBuyerPoolStore
impl Unpin for MemoryBuyerPoolStore
impl UnsafeUnpin for MemoryBuyerPoolStore
impl UnwindSafe for MemoryBuyerPoolStore
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> 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