use crate::database::LocateDb; use structview::{u32_be, View}; #[derive(Clone, Copy, View)] #[repr(C)] pub struct MlHeader { magic: [u8; 8], /* '\0', 'm', 'l', 'o', 'c', 'a', 't', 'e' */ conf_size: u32_be, version: u8, check_visibility: u8, pad: [u8; 2], } impl LocateDb for MlHeader { fn is(magic: &[u8]) -> bool { if magic.len() < 32 { false } else { match MlHeader::view(&magic[0..32]) { Ok(header) => header.magic[0..8] == *b"\0mlocate" && header.version == 0, Err(_) => false, } } } }