eryon_mem/blocks/
block.rs1use super::BlockHeader;
6use scsys::{Id, Timestamp};
7
8#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
11#[cfg_attr(
12 feature = "serde",
13 derive(serde_derive::Deserialize, serde_derive::Serialize),
14 serde(rename_all = "snake_case")
15)]
16#[repr(C)]
17pub struct Block {
18 pub(crate) header: BlockHeader,
19}
20
21impl Block {
22 pub const fn new(header: BlockHeader) -> Self {
24 Self { header }
25 }
26 pub fn from_id(id: Id) -> Self {
27 Self {
28 header: BlockHeader::from_id(id),
29 }
30 }
31 pub const fn header(&self) -> &BlockHeader {
33 &self.header
34 }
35 pub const fn header_mut(&mut self) -> &mut BlockHeader {
37 &mut self.header
38 }
39 pub const fn id(&self) -> Id {
41 self.header().id()
42 }
43 pub const fn timestamp(&self) -> Timestamp {
45 self.header().timestamp()
46 }
47}