use std::fmt;
use crate::md5::MD5Sum;
pub struct HeaderLine {
pub magic: &'static str,
pub raw_size: u32,
pub raw_hash: MD5Sum,
pub segment_size: u32,
}
impl fmt::Display for HeaderLine {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"{}:{:08x}:{}:{:08x}",
self.magic, self.raw_size, self.raw_hash, self.segment_size
)
}
}
pub struct SegmentLine {
pub start: u32,
pub size: u32,
pub adler: u32,
pub raw_hash: MD5Sum,
pub compressed_start: u32,
pub compressed_size: u32,
pub compressed_hash: MD5Sum,
}
impl fmt::Display for SegmentLine {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"{:08x}:{:08x}:{:x}:{}:{:08x}:{:08x}:{}",
self.start,
self.size,
(self.adler % 0xFFFFFFFF) >> 4,
self.raw_hash,
self.compressed_start,
self.compressed_size,
self.compressed_hash
)
}
}