sq3_rs/file_header/
reserved_for_expansion.rs

1use std::fmt::Debug;
2
3use sq3_derive::Name;
4use sq3_parser::TypeName;
5
6use crate::{field_parsing_error, result::SqliteResult, traits::ParseBytes};
7
8/// Reserved for expansion. Must be zero. (20 Bytes)
9#[derive(Default, Name)]
10pub struct ReservedForExpansion([u8; 20]);
11
12impl Debug for ReservedForExpansion {
13    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
14        f.debug_tuple(Self::NAME).finish()
15    }
16}
17
18impl ParseBytes for ReservedForExpansion {
19    const LENGTH_BYTES: usize = 20;
20
21    fn parsing_handler(bytes: &[u8]) -> SqliteResult<Self> {
22        for byte in bytes.iter() {
23            if *byte != b'\0' {
24                return Err(field_parsing_error! {Self::NAME.into()});
25            }
26        }
27        Ok(Default::default())
28    }
29}