use buffer_sv2::{Buffer, BufferPool};
use std::collections::VecDeque;
fn main() {
let mut buffer_pool = BufferPool::new(8);
let mut slices = VecDeque::new();
for _ in 0..4 {
let data_bytes = b"a"; let writable = buffer_pool.get_writable(data_bytes.len()); writable.copy_from_slice(data_bytes);
let data_slice = buffer_pool.get_data_owned(); slices.push_back(data_slice);
}
assert!(buffer_pool.is_back_mode());
slices.pop_front(); let data_bytes = b"b"; let writable = buffer_pool.get_writable(data_bytes.len());
writable.copy_from_slice(data_bytes);
let data_slice = buffer_pool.get_data_owned();
slices.push_back(data_slice);
assert!(buffer_pool.is_back_mode());
for _ in 0..4 {
let data_bytes = b"c"; let writable = buffer_pool.get_writable(data_bytes.len());
writable.copy_from_slice(data_bytes);
let data_slice = buffer_pool.get_data_owned();
slices.push_back(data_slice);
}
assert!(buffer_pool.is_front_mode());
let data_bytes = b"d"; let writable = buffer_pool.get_writable(data_bytes.len());
writable.copy_from_slice(data_bytes);
let data_slice = buffer_pool.get_data_owned();
slices.push_back(data_slice);
assert!(buffer_pool.is_alloc_mode());
}