Trait sc_consensus_epochs::Epoch
source · pub trait Epoch: Debug {
type NextEpochDescriptor;
type Slot: Ord + Copy + Debug;
// Required methods
fn start_slot(&self) -> Self::Slot;
fn end_slot(&self) -> Self::Slot;
fn increment(&self, descriptor: Self::NextEpochDescriptor) -> Self;
}
Expand description
Epoch data, distinguish whether it is genesis or not.
Once an epoch is created, it must have a known start_slot
and end_slot
, which cannot be
changed. Consensus engine may modify any other data in the epoch, if needed.
Required Associated Types§
sourcetype NextEpochDescriptor
type NextEpochDescriptor
Descriptor for the next epoch.
Required Methods§
sourcefn start_slot(&self) -> Self::Slot
fn start_slot(&self) -> Self::Slot
The starting slot of the epoch.
sourcefn end_slot(&self) -> Self::Slot
fn end_slot(&self) -> Self::Slot
Produce the “end slot” of the epoch. This is NOT inclusive to the epoch,
i.e. the slots covered by the epoch are self.start_slot() .. self.end_slot()
.
sourcefn increment(&self, descriptor: Self::NextEpochDescriptor) -> Self
fn increment(&self, descriptor: Self::NextEpochDescriptor) -> Self
Increment the epoch data, using the next epoch descriptor.
Object Safety§
This trait is not object safe.