use std::time::{Duration, Instant};
use kevy_embedded::Store;
fn main() {
let upstream = std::env::args()
.nth(1)
.unwrap_or_else(|| "127.0.0.1:16004".to_string());
println!("kevy-embedded replica → upstream {upstream}");
let replica = Store::open_replica(&upstream).expect("failed to construct replica store");
assert!(replica.is_replica());
let err = replica.set(b"local", b"nope").expect_err("expected READONLY");
println!("local write refused as expected: {err}");
let watch: [&[u8]; 4] = [b"hello", b"counter", b"key1", b"foo"];
let deadline = Instant::now() + Duration::from_secs(5);
while Instant::now() < deadline {
for k in watch {
if let Some(v) = replica.get(k).unwrap() {
println!("replica saw {:?} = {:?}", std::str::from_utf8(k).unwrap(), v);
}
}
std::thread::sleep(Duration::from_millis(250));
}
}