EpochBoundaryPreparation

Struct EpochBoundaryPreparation 

Source
pub struct EpochBoundaryPreparation {
    pub upcoming_epoch: Epoch,
    pub upcoming_environments: Option<ProgramRuntimeEnvironments>,
    pub programs_to_recompile: Vec<(Pubkey, Arc<ProgramCacheEntry>)>,
}
๐Ÿ‘ŽDeprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.
Expand description

Globally manages the transition between environments at the epoch boundary

Fieldsยง

ยงupcoming_epoch: Epoch
๐Ÿ‘ŽDeprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.

The epoch of the upcoming_environments

ยงupcoming_environments: Option<ProgramRuntimeEnvironments>
๐Ÿ‘ŽDeprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.

Anticipated replacement for environments at the next epoch

This is None during most of an epoch, and only Some around the boundaries (at the end and beginning of an epoch). More precisely, it starts with the cache preparation phase a few hundred slots before the epoch boundary, and it ends with the first rerooting after the epoch boundary.

ยงprograms_to_recompile: Vec<(Pubkey, Arc<ProgramCacheEntry>)>
๐Ÿ‘ŽDeprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.

List of loaded programs which should be recompiled before the next epoch (but donโ€™t have to).

Implementationsยง

Sourceยง

impl EpochBoundaryPreparation

Source

pub fn new(epoch: Epoch) -> Self

๐Ÿ‘ŽDeprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.
Source

pub fn get_upcoming_environments_for_epoch( &self, epoch: Epoch, ) -> Option<ProgramRuntimeEnvironments>

๐Ÿ‘ŽDeprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.

Returns the upcoming environments depending on the given epoch

Source

pub fn reroot(&mut self, epoch: Epoch) -> Option<ProgramRuntimeEnvironments>

๐Ÿ‘ŽDeprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.

Before rerooting the blockstore this concludes the epoch boundary preparation

Trait Implementationsยง

Sourceยง

impl Debug for EpochBoundaryPreparation

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Sourceยง

impl Default for EpochBoundaryPreparation

Sourceยง

fn default() -> EpochBoundaryPreparation

Returns the โ€œdefault valueโ€ for a type. Read more

Auto Trait Implementationsยง

Blanket Implementationsยง

Sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

Sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

Sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

Sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Sourceยง

impl<T> From<T> for T

Sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

Sourceยง

impl<T, U> Into<U> for T
where U: From<T>,

Sourceยง

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Sourceยง

impl<T> IntoEither for T

Sourceยง

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 more
Sourceยง

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Sourceยง

impl<T> Same for T

Sourceยง

type Output = T

Should always be Self
Sourceยง

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Sourceยง

type Error = Infallible

The type returned in the event of a conversion error.
Sourceยง

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Sourceยง

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Sourceยง

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Sourceยง

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Sourceยง

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Sourceยง

fn vzip(self) -> V