use crate::Nibble;
pub trait Ordering {
fn split_byte(byte: u8) -> (Nibble, Nibble);
fn join_nibbles(first: Nibble, second: Nibble) -> u8;
}
pub struct Le;
impl Ordering for Le {
#[inline]
fn split_byte(byte: u8) -> (Nibble, Nibble) {
let (upper, lower) = Nibble::pair_from_byte(byte);
(lower, upper)
}
#[inline]
fn join_nibbles(first: Nibble, second: Nibble) -> u8 {
let lower = first.get();
let upper = second.get() << 4;
upper | lower
}
}
pub struct Be;
impl Ordering for Be {
#[inline]
fn split_byte(byte: u8) -> (Nibble, Nibble) {
let (upper, lower) = Nibble::pair_from_byte(byte);
(upper, lower)
}
#[inline]
fn join_nibbles(first: Nibble, second: Nibble) -> u8 {
let lower = second.get();
let upper = first.get() << 4;
upper | lower
}
}