dnp3/util/
buffer.rs

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}