Struct EpochInfo
pub struct EpochInfo {
pub name: String,
pub next_tick: u32,
pub duration: u32,
pub current_epoch: u32,
pub current_epoch_start_block: u32,
pub is_initialized: bool,
pub fast_forward_next_tick: bool,
}Expand description
EpochInfo stores metadata of an epoch timer.
Fields§
§name: Stringname is the unique identifier.
next_tick: u32next_tick indicates when the next epoch starts (in Unix Epoch seconds),
if EpochInfo has been initialized.
If EpochInfo is not initialized yet, next_tick indicates the earliest
initialization time (see is_initialized below).
duration: u32duration of the epoch in seconds.
current_epoch: u32current epoch is the number of the current epoch.
0 if next_tick has never been reached, positive otherwise.
current_epoch_start_block: u32current_epoch_start_block indicates the block height when the current
epoch started. 0 if current_epoch is 0.
is_initialized: boolis_initialized indicates whether the EpochInfo has been initialized
and started ticking.
An EpochInfo is initialized when all below conditions are true:
- Not yet initialized
BlockHeight>= 2BlockTime>=next_tick
fast_forward_next_tick: boolfast_forward_next_tick specifies whether during initialization, next_tick
should be fast-forwarded to be greater than the current block time.
If false, the original next_tick value is
unchanged during initialization.
If true, next_tick will be set to the smallest value x greater than
the current block time such that (x - next_tick) % duration = 0.
Trait Implementations§
§impl Message for EpochInfo
impl Message for EpochInfo
§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.§impl Name for EpochInfo
impl Name for EpochInfo
§const NAME: &'static str = "EpochInfo"
const NAME: &'static str = "EpochInfo"
Message.
This name is the same as it appears in the source .proto file, e.g. FooBar.§const PACKAGE: &'static str = "dydxprotocol.epochs"
const PACKAGE: &'static str = "dydxprotocol.epochs"
., e.g. google.protobuf.§fn full_name() -> String
fn full_name() -> String
Message.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.impl StructuralPartialEq for EpochInfo
Auto Trait Implementations§
impl Freeze for EpochInfo
impl RefUnwindSafe for EpochInfo
impl Send for EpochInfo
impl Sync for EpochInfo
impl Unpin for EpochInfo
impl UnwindSafe for EpochInfo
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].