use crate::data::{mappings::ByteMap, views::SliceRange};
pub trait Recode: AsMut<[u8]> {
#[inline]
fn recode(&mut self, transformation_mapping: &ByteMap) {
for b in self.as_mut() {
*b = transformation_mapping[*b];
}
}
#[inline]
fn mask_if_exists<R: SliceRange>(&mut self, range: R, replacement: u8) {
if let Some(slice) = self.as_mut().get_mut(range) {
for b in slice {
*b = replacement;
}
}
}
}
impl<T: AsMut<[u8]>> Recode for T {}