```rust
struct State { v: u64, }
use std::time::Duration;
use simpletriplebuffer::new_with;
fn main() { let (mut w, mut r) = new_with(State { v: 0 }, |s| { println!("Cloned state!"); s.clone() });
let tw = std::thread::spawn(move || loop {
w.write_new(|last, new| {
new.v = last.v + 1;
});
});
let tr = std::thread::spawn(move || {
let mut last = 0;
loop {
let state = r.read_newest();
println!("Value: {} (+{})", state.v, state.v - last);
last = state.v;
std::thread::sleep(Duration::from_millis(20));
}
});
tw.join().unwrap();
tr.join().unwrap();
} ```