use dbuff::*;
use std::time::Duration;
#[derive(Debug, Clone, Default)]
struct AppData {
items: Vec<i32>,
}
#[tokio::main]
async fn main() {
let (domain, write_handle) = SharedDomainData::with_coalesce(
AppData::default(),
Duration::from_millis(1),
);
tokio::spawn(write_handle.run());
for i in 0..100 {
domain.modify(move |data| {
data.items.push(i);
});
}
tokio::time::sleep(Duration::from_millis(10)).await;
let guard = domain.read();
assert_eq!(guard.items.len(), 100);
println!("items: {:?}", &guard.items[..10]);
}