pub trait Layout {
const SEQ_BITS: u32;
const PID_BITS: u32;
const TS_BITS: u32;
const SEQ_MASK: u64 = (1 << Self::SEQ_BITS) - 1;
const PID_MASK: u64 = (1 << Self::PID_BITS) - 1;
const TS_MASK: u64 = (1 << Self::TS_BITS) - 1;
const TS_SHIFT: u32 = Self::SEQ_BITS + Self::PID_BITS;
const MAX_PID: u32 = 1 << Self::PID_BITS;
}
pub struct DefaultLayout;
impl Layout for DefaultLayout {
const TS_BITS: u32 = 36;
const PID_BITS: u32 = 11;
const SEQ_BITS: u32 = 17;
}