use crate::check::Check;
use crate::error::{Error, Result};
pub const VOXL_V2_MAGIC: [u8; 4] = *b"VOXL";
pub const VOXL_V1_MARKER: u8 = b'{';
pub fn is_voxl(payload: &[u8]) -> bool {
payload.starts_with(&VOXL_V2_MAGIC) || payload.first() == Some(&VOXL_V1_MARKER)
}
pub fn require_voxl(payload: &[u8]) -> Result<()> {
if is_voxl(payload) {
return Ok(());
}
Err(Error::new(
Check::VoxlSignature,
format!(
"payload begins with {:02x?}, which is neither the VOXL V2 magic nor a V1 document",
&payload[..payload.len().min(4)]
),
))
}