storage_manager/backend/table/
table_file.rs1use std::fs::File;
2use std::io::{self, Read, Seek, SeekFrom};
3
4pub const TABLE_HEADER_PAGE_ID: u32 = 0;
6
7pub const TABLE_HEADER_SIZE: u32 = 8192;
9
10pub struct Table {
12 pub data: Vec<u8>,
14}
15
16impl Table {
17 pub fn new() -> Self {
19 Self {
20 data: vec![0; TABLE_HEADER_SIZE as usize],
21 }
22 }
23}
24
25pub struct TableHeader {
27 pub page_count: u32,
29}
30
31pub fn page_count(file: &mut File) -> io::Result<u32> {
33 file.seek(SeekFrom::Start(0))?;
35
36 let mut buffer = [0u8; 4];
38 file.read_exact(&mut buffer)?;
39
40 Ok(u32::from_le_bytes(buffer))
41}