pub trait Input<const N: usize> {
fn next_chunk(&mut self) -> Option<&[u8]>;
fn remainder(&self) -> &[u8];
}
impl<const N: usize> Input<N> for &[u8] {
fn next_chunk(&mut self) -> Option<&[u8]> {
let (chunk, rest) = self.split_at_checked(N)?;
*self = rest;
Some(chunk)
}
fn remainder(&self) -> &[u8] {
self
}
}