pub trait SetLen {
unsafe fn set_len(&mut self, new_len: usize);
}
#[macro_export]
macro_rules! impl_ring_buffer_set_len {
($readptr: ident, $writeptr: ident) => {
#[inline]
unsafe fn set_len(&mut self, new_len: usize) {
let cap = self.capacity();
assert!(new_len <= cap, "Cannot set the a length of {new_len} on a ringbuffer with capacity for {cap} items");
self.$writeptr = self.$readptr + new_len;
}
};
}