thru_base/
tn_block_packet.rs1use log::info;
2
3pub const MESSAGE_TYPE_BLOCK_PACKET: u64 = 0xBB;
4pub const BLOCK_PACKET_HAS_HEADER: u8 = 0x01;
5pub const BLOCK_PACKET_HAS_FOOTER: u8 = 0x02;
6pub const BLOCK_PACKET_VERSION_V1: u8 = 0x01;
7
8#[repr(C, packed)]
9pub struct TnBlockPacket {
10 pub block_header_sig: [u8; 64],
11 pub block_packet_version: u8,
12 pub flags: u8,
13 pub offset: u32,
14 }
16
17impl TnBlockPacket {
18 pub fn log_packet_info(&self) {
19 let has_header = (self.flags & BLOCK_PACKET_HAS_HEADER) != 0;
20 let has_footer = (self.flags & BLOCK_PACKET_HAS_FOOTER) != 0;
21 let offset = self.offset;
22 let first_sig_u64 = u64::from_le_bytes(self.block_header_sig[0..8].try_into().unwrap());
23
24 info!(
25 "TnBlockPacket - version: {}, flags: 0x{:02x} (header: {}, footer: {}), offset: {}, first_sig_u64: {}",
26 self.block_packet_version, self.flags, has_header, has_footer, offset, first_sig_u64
27 );
28 }
29}