Struct diem_types::block_metadata::BlockMetadata [−][src]
pub struct BlockMetadata { /* fields omitted */ }
Expand description
Struct that will be persisted on chain to store the information of the current block.
The flow will look like following:
- The executor will pass this struct to VM at the end of a block proposal.
- The VM will use this struct to create a special system transaction that will emit an event represents the information of the current block. This transaction can’t be emitted by regular users and is generated by each of the validators on the fly. Such transaction will be executed before all of the user-submitted transactions in the blocks.
- Once that special resource is modified, the other user transactions can read the consensus info by calling into the read method of that resource, which would thus give users the information such as the current leader.
Implementations
impl BlockMetadata
[src]
impl BlockMetadata
[src]pub fn new(
id: HashValue,
round: u64,
timestamp_usecs: u64,
previous_block_votes: Vec<AccountAddress>,
proposer: AccountAddress
) -> Self
[src]
id: HashValue,
round: u64,
timestamp_usecs: u64,
previous_block_votes: Vec<AccountAddress>,
proposer: AccountAddress
) -> Self
pub fn id(&self) -> HashValue
[src]
pub fn into_inner(self) -> (u64, u64, Vec<AccountAddress>, AccountAddress)
[src]
pub fn timestamp_usec(&self) -> u64
[src]
pub fn proposer(&self) -> AccountAddress
[src]
Trait Implementations
impl Clone for BlockMetadata
[src]
impl Clone for BlockMetadata
[src]fn clone(&self) -> BlockMetadata
[src]
fn clone(&self) -> BlockMetadata
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl Debug for BlockMetadata
[src]
impl Debug for BlockMetadata
[src]impl<'de> Deserialize<'de> for BlockMetadata
[src]
impl<'de> Deserialize<'de> for BlockMetadata
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl PartialEq<BlockMetadata> for BlockMetadata
[src]
impl PartialEq<BlockMetadata> for BlockMetadata
[src]fn eq(&self, other: &BlockMetadata) -> bool
[src]
fn eq(&self, other: &BlockMetadata) -> bool
[src]This method tests for self
and other
values to be equal, and is used
by ==
. Read more
fn ne(&self, other: &BlockMetadata) -> bool
[src]
fn ne(&self, other: &BlockMetadata) -> bool
[src]This method tests for !=
.
impl Serialize for BlockMetadata
[src]
impl Serialize for BlockMetadata
[src]impl Eq for BlockMetadata
[src]
impl StructuralEq for BlockMetadata
[src]
impl StructuralPartialEq for BlockMetadata
[src]
Auto Trait Implementations
impl RefUnwindSafe for BlockMetadata
impl Send for BlockMetadata
impl Sync for BlockMetadata
impl Unpin for BlockMetadata
impl UnwindSafe for BlockMetadata
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
[src]
impl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
[src]pub fn test_only_hash(&self) -> HashValue
[src]
pub fn test_only_hash(&self) -> HashValue
[src]Generates a hash used only for tests.
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,