pub trait BytesInDisplayOrder<
const SHOULD_REVERSE_BYTES_IN_DISPLAY_ORDER: bool = false,
const BYTE_LEN: usize = 32,
>: Sized
{
fn bytes_in_serialized_order(&self) -> [u8; BYTE_LEN];
fn from_bytes_in_serialized_order(bytes: [u8; BYTE_LEN]) -> Self;
fn bytes_in_display_order(&self) -> [u8; BYTE_LEN] {
let mut reversed_bytes = self.bytes_in_serialized_order();
if SHOULD_REVERSE_BYTES_IN_DISPLAY_ORDER {
reversed_bytes.reverse();
}
reversed_bytes
}
fn from_bytes_in_display_order(bytes_in_display_order: &[u8; BYTE_LEN]) -> Self {
let mut internal_byte_order = *bytes_in_display_order;
if SHOULD_REVERSE_BYTES_IN_DISPLAY_ORDER {
internal_byte_order.reverse();
}
Self::from_bytes_in_serialized_order(internal_byte_order)
}
}