parse_sqlite_header

Function parse_sqlite_header 

Source
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 pages
  • Err(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),
}