#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum FbxFooterPaddingLength {
Default,
Forced(u8),
}
impl Default for FbxFooterPaddingLength {
#[inline]
fn default() -> Self {
FbxFooterPaddingLength::Default
}
}
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct FbxFooter<'a> {
pub unknown1: Option<&'a [u8; 16]>,
pub padding_len: FbxFooterPaddingLength,
pub unknown2: Option<[u8; 4]>,
pub unknown3: Option<&'a [u8; 16]>,
}
impl<'a> FbxFooter<'a> {
#[inline]
#[must_use]
pub(crate) fn unknown1(&self) -> &'a [u8; 16] {
const DEFAULT: [u8; 16] = [
0xf0, 0xb1, 0xa2, 0x03, 0xd4, 0xc5, 0xd6, 0x67, 0xb8, 0x79, 0xfa, 0x8b, 0x1c, 0xfd,
0x2e, 0x7f,
];
self.unknown1.unwrap_or(&DEFAULT)
}
#[inline]
#[must_use]
pub(crate) fn unknown2(&self) -> [u8; 4] {
const DEFAULT: [u8; 4] = [0; 4];
self.unknown2.unwrap_or(DEFAULT)
}
#[inline]
#[must_use]
pub(crate) fn unknown3(&self) -> &'a [u8; 16] {
const DEFAULT: [u8; 16] = [
0xf8, 0x5a, 0x8c, 0x6a, 0xde, 0xf5, 0xd9, 0x7e, 0xec, 0xe9, 0x0c, 0xe3, 0x75, 0x8f,
0x29, 0x0b,
];
self.unknown3.unwrap_or(&DEFAULT)
}
}