use swapvec::{SwapVec, SwapVecConfig};
const DATA_MB: u64 = 20;
fn main() {
let element_count = DATA_MB / 8;
let big_iterator = 0..element_count * 1024 * 1024;
let config = swapvec::SwapVecConfig {
batch_size: 8 * 1024,
..SwapVecConfig::default()
};
let mut swapvec: SwapVec<_> = SwapVec::with_config(config);
swapvec.consume(big_iterator.into_iter()).unwrap();
println!("Data size: {}MB", DATA_MB);
println!("Done. Batches written: {}", swapvec.batches_written());
println!(
"Filesize: {}MB",
swapvec
.file_size()
.map(|x| x as f32 / 1024. / 1024.)
.unwrap_or(0.)
);
println!("Read back");
let read_back: Vec<_> = swapvec.into_iter().map(|x| x.unwrap()).collect();
println!("Elements read back: {}", read_back.len());
}