Struct fil_actor_miner_state::v11::ExpirationQueue
source · pub struct ExpirationQueue<'db, BS> {
pub amt: Array<'db, ExpirationSet, BS>,
pub quant: QuantSpec,
}
Expand description
A queue of expiration sets by epoch, representing the on-time or early termination epoch for a collection of sectors. Wraps an AMTChainEpoch*ExpirationSet. Keys in the queue are quantized (upwards), modulo some offset, to reduce the cardinality of keys.
Fields§
§amt: Array<'db, ExpirationSet, BS>
§quant: QuantSpec
Implementations§
source§impl<'db, BS: Blockstore> ExpirationQueue<'db, BS>
impl<'db, BS: Blockstore> ExpirationQueue<'db, BS>
sourcepub fn new(
store: &'db BS,
root: &Cid,
quant: QuantSpec,
) -> Result<Self, AmtError>
pub fn new( store: &'db BS, root: &Cid, quant: QuantSpec, ) -> Result<Self, AmtError>
Loads a queue root.
Epochs provided to subsequent method calls will be quantized upwards to quanta mod offsetSeed before being written to/read from queue entries.
sourcepub fn add_active_sectors<'a>(
&mut self,
sectors: impl IntoIterator<Item = &'a SectorOnChainInfo>,
sector_size: SectorSize,
) -> Result<(BitField, PowerPair, TokenAmount)>
pub fn add_active_sectors<'a>( &mut self, sectors: impl IntoIterator<Item = &'a SectorOnChainInfo>, sector_size: SectorSize, ) -> Result<(BitField, PowerPair, TokenAmount)>
Adds a collection of sectors to their on-time target expiration entries (quantized). The sectors are assumed to be active (non-faulty). Returns the sector numbers, power, and pledge added.
sourcepub fn reschedule_expirations(
&mut self,
new_expiration: ChainEpoch,
sectors: &[SectorOnChainInfo],
sector_size: SectorSize,
) -> Result<()>
pub fn reschedule_expirations( &mut self, new_expiration: ChainEpoch, sectors: &[SectorOnChainInfo], sector_size: SectorSize, ) -> Result<()>
Reschedules some sectors to a new (quantized) expiration epoch. The sectors being rescheduled are assumed to be not faulty, and hence are removed from and re-scheduled for on-time rather than early expiration. The sectors’ power and pledge are assumed not to change, despite the new expiration.
sourcepub fn reschedule_as_faults(
&mut self,
new_expiration: ChainEpoch,
sectors: &[SectorOnChainInfo],
sector_size: SectorSize,
) -> Result<PowerPair>
pub fn reschedule_as_faults( &mut self, new_expiration: ChainEpoch, sectors: &[SectorOnChainInfo], sector_size: SectorSize, ) -> Result<PowerPair>
Re-schedules sectors to expire at an early expiration epoch (quantized), if they wouldn’t expire before then anyway. The sectors must not be currently faulty, so must be registered as expiring on-time rather than early. The pledge for the now-early sectors is removed from the queue. Returns the total power represented by the sectors.
sourcepub fn reschedule_all_as_faults(
&mut self,
fault_expiration: ChainEpoch,
) -> Result<()>
pub fn reschedule_all_as_faults( &mut self, fault_expiration: ChainEpoch, ) -> Result<()>
Re-schedules all sectors to expire at an early expiration epoch, if they wouldn’t expire before then anyway.
sourcepub fn reschedule_recovered(
&mut self,
sectors: Vec<SectorOnChainInfo>,
sector_size: SectorSize,
) -> Result<PowerPair>
pub fn reschedule_recovered( &mut self, sectors: Vec<SectorOnChainInfo>, sector_size: SectorSize, ) -> Result<PowerPair>
Removes sectors from any queue entries in which they appear that are earlier then their scheduled expiration epoch, and schedules them at their expected termination epoch. Pledge for the sectors is re-added as on-time. Power for the sectors is changed from faulty to active (whether rescheduled or not). Returns the newly-recovered power. Fails if any sectors are not found in the queue.
sourcepub fn replace_sectors(
&mut self,
old_sectors: &[SectorOnChainInfo],
new_sectors: &[SectorOnChainInfo],
sector_size: SectorSize,
) -> Result<(BitField, BitField, PowerPair, TokenAmount)>
pub fn replace_sectors( &mut self, old_sectors: &[SectorOnChainInfo], new_sectors: &[SectorOnChainInfo], sector_size: SectorSize, ) -> Result<(BitField, BitField, PowerPair, TokenAmount)>
Removes some sectors and adds some others. The sectors being replaced must not be faulty, so must be scheduled for on-time rather than early expiration. The sectors added are assumed to be not faulty. Returns the old a new sector number bitfields, and delta to power and pledge, new minus old.
sourcepub fn remove_sectors(
&mut self,
policy: &Policy,
sectors: &[SectorOnChainInfo],
faults: &BitField,
recovering: &BitField,
sector_size: SectorSize,
) -> Result<(ExpirationSet, PowerPair)>
pub fn remove_sectors( &mut self, policy: &Policy, sectors: &[SectorOnChainInfo], faults: &BitField, recovering: &BitField, sector_size: SectorSize, ) -> Result<(ExpirationSet, PowerPair)>
Remove some sectors from the queue. The sectors may be active or faulty, and scheduled either for on-time or early termination. Returns the aggregate of removed sectors and power, and recovering power. Fails if any sectors are not found in the queue.
sourcepub fn pop_until(&mut self, until: ChainEpoch) -> Result<ExpirationSet>
pub fn pop_until(&mut self, until: ChainEpoch) -> Result<ExpirationSet>
Removes and aggregates entries from the queue up to and including some epoch.
Auto Trait Implementations§
impl<'db, BS> Freeze for ExpirationQueue<'db, BS>
impl<'db, BS> RefUnwindSafe for ExpirationQueue<'db, BS>where
BS: RefUnwindSafe,
impl<'db, BS> Send for ExpirationQueue<'db, BS>where
BS: Sync,
impl<'db, BS> !Sync for ExpirationQueue<'db, BS>
impl<'db, BS> Unpin for ExpirationQueue<'db, BS>
impl<'db, BS> UnwindSafe for ExpirationQueue<'db, BS>where
BS: RefUnwindSafe,
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
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.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>
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>
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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> References<RawCodec> for T
impl<T> References<RawCodec> for T
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.