pub trait Codec: Copy + Clone + Into<u8> + PartialEq {
type Error: Error + Display;
const WIDTH: u8;
// Required methods
fn unsafe_from_bits(b: u8) -> Self;
fn try_from_bits(b: u8) -> Result<Self, Self::Error>;
fn from_char(c: char) -> Result<Self, Self::Error>;
fn to_char(self) -> char;
}