fn main() {
use sharded_vec_writer::VecWriter;
let shard_sizes = [4, 3, 7];
let total_size = shard_sizes.iter().sum();
let mut data = Vec::with_capacity(total_size);
let mut writer = VecWriter::new(&mut data);
let mut shards = writer.take_shards(shard_sizes.into_iter());
std::thread::scope(|scope| {
for shard in &mut shards {
scope.spawn(|| {
for i in 0..shard.len() {
shard.push(i);
}
});
}
});
writer.return_shards(shards);
assert_eq!(data, &[0, 1, 2, 3, 0, 1, 2, 0, 1, 2, 3, 4, 5, 6]);
}