dubp_common/
block_number.rs

1use crate::*;
2
3/// A block number.
4#[derive(
5    Copy,
6    Clone,
7    Debug,
8    Default,
9    Deserialize,
10    Eq,
11    Hash,
12    Ord,
13    PartialEq,
14    PartialOrd,
15    Serialize,
16    zerocopy::AsBytes,
17    zerocopy::FromBytes,
18)]
19#[repr(transparent)]
20pub struct BlockNumber(pub u32);
21
22impl Display for BlockNumber {
23    fn fmt(&self, f: &mut Formatter) -> Result<(), FmtError> {
24        write!(f, "{}", self.0)
25    }
26}
27
28impl FromStr for BlockNumber {
29    type Err = std::num::ParseIntError;
30
31    fn from_str(s: &str) -> Result<Self, Self::Err> {
32        u32::from_str(s).map(BlockNumber)
33    }
34}