1use scursor::WriteCursor;
2
3pub(crate) struct Buffer {
4 inner: Box<[u8]>,
5}
6
7impl Buffer {
8 pub(crate) fn new(size: usize) -> Self {
9 Self {
10 inner: vec![0; size].into_boxed_slice(),
11 }
12 }
13
14 pub(crate) fn write_cursor(&mut self) -> WriteCursor {
15 WriteCursor::new(self.inner.as_mut())
16 }
17
18 pub(crate) fn get(&self, length: usize) -> Option<&[u8]> {
19 self.inner.get(0..length)
20 }
21
22 #[cfg(test)]
23 pub(crate) fn get_mut(&mut self, length: usize) -> Option<&mut [u8]> {
24 self.inner.get_mut(0..length)
25 }
26
27 #[cfg(test)]
28 pub(crate) fn len(&self) -> usize {
29 self.inner.len()
30 }
31}