use core::ops::Range;
macro_rules! iter_try {
($e:expr) => {
match $e {
Ok(x) => x,
Err(e) => return Some(Err(e)),
}
};
}
pub(crate) fn byte_subrange(range: &Range<usize>, byte_count: usize) -> Option<Range<usize>> {
let subrange_end = range.start.checked_add(byte_count)?;
if subrange_end > range.end {
return None;
}
Some(range.start..subrange_end)
}
#[cfg(test)]
pub mod tests {
use std::fs::File;
use std::io::Read;
pub fn testhive_vec() -> Vec<u8> {
let mut buffer = Vec::new();
File::open("testdata/testhive")
.unwrap()
.read_to_end(&mut buffer)
.unwrap();
buffer
}
}