pub fn decode(data: &[u8]) -> Result<(Vec, &[u8]), Error>