pub const SEGMENT_MAGIC: u32 = 0x5256_4653;
pub const ROOT_MANIFEST_MAGIC: u32 = 0x5256_4D30;
pub const SEGMENT_ALIGNMENT: usize = 64;
pub const ROOT_MANIFEST_SIZE: usize = 4096;
pub const MAX_SEGMENT_PAYLOAD: u64 = 4 * 1024 * 1024 * 1024;
pub const SEGMENT_HEADER_SIZE: usize = 64;
pub const SEGMENT_VERSION: u8 = 1;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn magic_bytes_match_ascii() {
let bytes = SEGMENT_MAGIC.to_le_bytes();
assert_eq!(&bytes, b"SFVR"); let bytes_be = SEGMENT_MAGIC.to_be_bytes();
assert_eq!(&bytes_be, b"RVFS");
}
#[test]
fn root_manifest_magic_bytes() {
let bytes_be = ROOT_MANIFEST_MAGIC.to_be_bytes();
assert_eq!(&bytes_be, b"RVM0");
}
#[test]
fn alignment_is_power_of_two() {
assert!(SEGMENT_ALIGNMENT.is_power_of_two());
}
#[test]
fn max_payload_is_4gb() {
assert_eq!(MAX_SEGMENT_PAYLOAD, 0x1_0000_0000);
}
}