#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum SgiLabelByteOrder {
Native,
Swabbed,
}
impl SgiLabelByteOrder {
pub fn display_name(self) -> &'static str {
match self {
Self::Native => "native",
Self::Swabbed => "byte-swapped",
}
}
}
pub fn swab16_in_place(buf: &mut [u8]) {
for pair in buf.chunks_exact_mut(2) {
pair.swap(0, 1);
}
}
pub fn apply_byte_order(order: SgiLabelByteOrder, buf: &mut [u8]) {
if order == SgiLabelByteOrder::Swabbed {
swab16_in_place(buf);
}
}