Skip to main content

FafbHeader

Struct FafbHeader 

Source
pub struct FafbHeader {
    pub version_major: u8,
    pub version_minor: u8,
    pub flags: Flags,
    pub source_checksum: u32,
    pub created_timestamp: u64,
    pub section_count: u16,
    pub section_table_offset: u32,
    pub reserved: u16,
    pub total_size: u32,
}
Expand description

The 32-byte FAFB file header

Fields§

§version_major: u8

Format version - major (breaking changes)

§version_minor: u8

Format version - minor (additive changes)

§flags: Flags

Feature flags

§source_checksum: u32

CRC32 checksum of original .faf YAML source

§created_timestamp: u64

Unix timestamp when .fafb was created

§section_count: u16

Number of sections in the file

§section_table_offset: u32

Byte offset to section table (from start of file)

§reserved: u16

Reserved for future use

§total_size: u32

Total file size in bytes

Implementations§

Source§

impl FafbHeader

Source

pub fn new() -> Self

Create a new header with default version and empty flags

Source

pub fn with_timestamp() -> Self

Create header with current timestamp

Source

pub fn compute_checksum(yaml_source: &[u8]) -> u32

Compute CRC32 checksum of source YAML

Source

pub fn set_source_checksum(&mut self, yaml_source: &[u8])

Set the source checksum from YAML content

Source

pub fn write<W: Write>(&self, writer: &mut W) -> FafbResult<()>

Write header to a byte buffer

Source

pub fn to_bytes(&self) -> FafbResult<Vec<u8>>

Write header to a new Vec<u8>

Source

pub fn read<R: Read>(reader: &mut R) -> FafbResult<Self>

Read header from a byte buffer

Source

pub fn from_bytes(data: &[u8]) -> FafbResult<Self>

Read header from a byte slice

Source

pub fn validate(&self, file_data: &[u8]) -> FafbResult<()>

Validate header against actual file data

Source

pub fn is_compatible(&self) -> bool

Check if this header is compatible with the current version

Source

pub fn version_string(&self) -> String

Get version as string (e.g., “1.0”)

Trait Implementations§

Source§

impl Clone for FafbHeader

Source§

fn clone(&self) -> FafbHeader

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FafbHeader

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for FafbHeader

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for FafbHeader

Source§

fn eq(&self, other: &FafbHeader) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for FafbHeader

Source§

impl StructuralPartialEq for FafbHeader

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.