use num_traits::{ops::wrapping::WrappingAdd, PrimInt, WrappingSub};
use std::fmt::Debug;
pub(crate) trait CodingDescriptor: Debug + Copy {
type Elem: PrimInt + Debug + WrappingAdd + WrappingSub;
const TAG_LEN: [usize; 4];
const TAG_MAX: [Self::Elem; 4];
fn tag_value(value: Self::Elem) -> (u8, usize);
fn data_len(tag: u8) -> usize;
}