in src/reader.rs [382:411]
fn guess_endianness(
mut typ: [u8; 4],
buffer: &[u8],
stem: &str,
) -> Result<bool, GcovReaderError> {
if 4 <= buffer.len() {
let bytes = &buffer[..4];
if bytes == typ {
// Little endian
Ok(true)
} else {
typ.reverse();
if bytes == typ {
// Big endian
Ok(false)
} else {
Err(GcovReaderError::Str(format!(
"Unexpected file type: {} in {}.",
std::str::from_utf8(bytes).unwrap(),
stem
)))
}
}
} else {
Err(GcovReaderError::Str(format!(
"Not enough data in buffer: Cannot compare types in {}",
stem
)))
}
}