fn encode_interleaved<const N: usize, const M: usize>(
    a: [u8; M],
    b: [u8; M],
    dest: &mut [u8; N]
)