libhumancode/
smallbytebuf.rs

1#[derive(Copy, Clone, Debug)]
2pub struct SmallByteBuf<const N: usize> {
3    buf: [u8; N],
4    len: u8,
5}
6
7impl<const N: usize> SmallByteBuf<N> {
8    pub fn new(buf: [u8; N], len: u8) -> SmallByteBuf<N> {
9        SmallByteBuf { buf, len }
10    }
11
12    pub fn len(&self) -> usize {
13        self.len as usize
14    }
15
16    pub fn as_bytes(&self) -> &[u8] {
17        &self.buf[0..self.len as usize]
18    }
19
20    pub fn as_mut_bytes(&mut self) -> &mut [u8] {
21        &mut self.buf[0..self.len as usize]
22    }
23}