use crate::db_parser::game_data::GameData;
use crate::db_parser::DATA_MAGIC;
use std::fs;
use std::io::Result;
use std::path::Path;
pub fn parse(data: &Path) -> Result<GameData> {
match fs::read(data) {
Ok(contents) => {
Ok(parse_bytes(&contents))
}
Err(e) => {
Err(e)
}
}
}
pub fn parse_bytes(bytes: &[u8]) -> GameData {
let mut offset: usize = 0;
let header: &[u8] = &bytes[0..11];
offset += 11;
if &header[..10] != DATA_MAGIC {
panic!("Invalid data header.");
}
offset += 3;
GameData::parse(&bytes[offset..])
}