use fsys::builder;
use std::sync::Arc;
#[tokio::main]
async fn main() -> fsys::Result<()> {
let fs = Arc::new(builder().build()?);
let dir = std::env::temp_dir();
let batch: Vec<(std::path::PathBuf, Vec<u8>)> = (0..6)
.map(|n| {
(
dir.join(format!("fsys_async_batch_{n}.txt")),
format!("async file {n}").into_bytes(),
)
})
.collect();
let count = batch.len();
if let Err(e) = fs.clone().write_batch_async(batch.clone()).await {
eprintln!(
"async batch failed at op {}, completed={}",
e.failed_at, e.completed
);
return Err(*e.into_inner());
}
println!("submitted async batch of {count} writes");
let paths: Vec<std::path::PathBuf> = batch.into_iter().map(|(p, _)| p).collect();
if let Err(e) = fs.clone().delete_batch_async(paths).await {
return Err(*e.into_inner());
}
Ok(())
}