sq3_rs/file_header/
user_version.rs1use std::ops::Deref;
2
3use sq3_derive::Name;
4use sq3_parser::TypeName;
5
6use crate::{result::SqliteResult, traits::ParseBytes};
7
8#[derive(Debug, Default, Name)]
14pub struct UserVersion(u32);
15impl Deref for UserVersion {
16 type Target = u32;
17
18 fn deref(&self) -> &Self::Target {
19 &self.0
20 }
21}
22
23impl ParseBytes for UserVersion {
24 const LENGTH_BYTES: usize = 4;
25
26 fn parsing_handler(bytes: &[u8]) -> SqliteResult<Self> {
27 let buf: [u8; Self::LENGTH_BYTES] = bytes.try_into()?;
28
29 let value = u32::from_be_bytes(buf);
30
31 Ok(Self(value))
32 }
33}