use alloc::boxed::Box;
use crate::config::BLOCK_SIZE;
pub struct BlockBuffer {
buffer: Box<[u8; BLOCK_SIZE]>,
}
impl BlockBuffer {
pub fn new() -> Self {
Self {
buffer: Box::new([0; BLOCK_SIZE]),
}
}
pub fn as_slice(&self) -> &[u8] {
&*self.buffer
}
pub fn as_mut_slice(&mut self) -> &mut [u8] {
&mut *self.buffer
}
pub fn len(&self) -> usize {
self.buffer.len()
}
pub fn is_empty(&self) -> bool {
self.buffer.is_empty()
}
pub fn clear(&mut self) {
self.buffer.fill(0);
}
}
impl Default for BlockBuffer {
fn default() -> Self {
Self::new()
}
}