pub struct FileHeader {
pub magic: [u8; 4],
pub version: u16,
pub flags: u16,
pub data_length: u64,
pub crc32: u32,
pub blake3_hash: [u8; 32],
}Expand description
File header for .acomm format.
Supports both v2 (CRC32, 20-byte header) and v3 (Blake3, 48-byte header).
Fields§
§magic: [u8; 4]§version: u16§flags: u16§data_length: u64§crc32: u32CRC32 checksum (used in v2 only).
blake3_hash: [u8; 32]Blake3 hash (used in v3+).
Implementations§
Source§impl FileHeader
impl FileHeader
Sourcepub const SIZE_V3: usize
pub const SIZE_V3: usize
Header size for v3 (Blake3): magic(4) + version(2) + flags(2) + data_length(8) + blake3(32) = 48.
Sourcepub const SIZE_V2: usize
pub const SIZE_V2: usize
Header size for v2 (CRC32): magic(4) + version(2) + flags(2) + data_length(8) + crc32(4) = 20.
Sourcepub fn new_with_flags(data: &[u8], flags: u16) -> Self
pub fn new_with_flags(data: &[u8], flags: u16) -> Self
Create a new v3 header (Blake3) with explicit flags.
Sourcepub fn new_legacy(data: &[u8]) -> Self
pub fn new_legacy(data: &[u8]) -> Self
Create a legacy v2 header (CRC32) for the given data.
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self, String>
pub fn from_bytes(bytes: &[u8]) -> Result<Self, String>
Parse header from bytes, auto-detecting version for correct layout.
Sourcepub fn header_size(&self) -> usize
pub fn header_size(&self) -> usize
Return the header size for this version.
Sourcepub fn verify(&self, data: &[u8]) -> bool
pub fn verify(&self, data: &[u8]) -> bool
Verify integrity of data against the stored hash/checksum.
Sourcepub fn verify_crc(&self, data: &[u8]) -> bool
pub fn verify_crc(&self, data: &[u8]) -> bool
Verify CRC32 of data matches header (v2 legacy).
Sourcepub fn verify_blake3(&self, data: &[u8]) -> bool
pub fn verify_blake3(&self, data: &[u8]) -> bool
Verify Blake3 hash of data matches header (v3+).
Trait Implementations§
Source§impl Clone for FileHeader
impl Clone for FileHeader
Source§fn clone(&self) -> FileHeader
fn clone(&self) -> FileHeader
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FileHeader
impl RefUnwindSafe for FileHeader
impl Send for FileHeader
impl Sync for FileHeader
impl Unpin for FileHeader
impl UnsafeUnpin for FileHeader
impl UnwindSafe for FileHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more