use webdataset::prelude::*;
fn main() -> Result<()> {
let shard = concat!(env!("CARGO_MANIFEST_DIR"), "/../../testdata/sample.tgz");
let dataset = WebDataset::builder(shard)
.selection(Selection::new())
.handler(handlers::reraise_exception())
.seed(0)
.build()?;
let stream = dataset.into_iter();
let samples: Vec<Sample> = stream.shuffled(16, Some(0)).take(3).collect::<Result<Vec<_>>>()?;
for sample in &samples {
for (name, value) in sample.iter() {
let bytes = value.as_bytes().map(|b| b.len()).unwrap_or(0);
let _ = (name, bytes);
}
}
let first = samples[0].key().unwrap_or("<no key>");
println!("prelude ok: {} samples, first key {first}", samples.len());
Ok(())
}