pub fn parse_sqlite_header(data: &[u8]) -> Result<(usize, u32), DatabaseError>Expand description
Parse SQLite database header to extract metadata
§Arguments
header- First 100+ bytes of SQLite database file
§Returns
Ok((page_size, page_count))- Database page size and number of pagesErr(DatabaseError)- If header is invalid or corrupted
§SQLite Header Format
- Bytes 0-15: Magic string “SQLite format 3\0”
- Bytes 16-17: Page size (big-endian u16), special case: 1 = 65536
- Bytes 28-31: Page count (big-endian u32)
§Example
use absurder_sql::storage::export::parse_sqlite_header;
let header_data: Vec<u8> = vec![/* ... header bytes ... */];
match parse_sqlite_header(&header_data) {
Ok((page_size, page_count)) => {
println!("Database: {} pages of {} bytes", page_count, page_size);
}
Err(e) => eprintln!("Invalid header: {}", e),
}