use dynamo_tokens::{BlockHash, PositionalLineageHash, SequenceHash, TokenBlock};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct UniversalBlock {
pub block_hash: BlockHash,
pub plh: PositionalLineageHash,
}
impl UniversalBlock {
#[inline]
pub fn position(&self) -> u64 {
self.plh.position()
}
#[inline]
pub fn sequence_hash(&self) -> SequenceHash {
self.plh.current_sequence_hash()
}
pub fn into_plh(self) -> PositionalLineageHash {
self.plh
}
}
impl From<&TokenBlock> for UniversalBlock {
fn from(b: &TokenBlock) -> Self {
Self {
block_hash: b.block_hash(),
plh: b.positional_lineage_hash(),
}
}
}