use gun::Gun;
use serde_json::json;
use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let gun = Arc::new(Gun::new());
let cat_chain = gun.get("cat");
cat_chain
.put(json!({
"name": "Fluffy",
"species": "kitty"
}))
.await?;
let mark_chain = gun.get("mark");
mark_chain
.put(json!({
"name": "Mark"
}))
.await?;
let boss_name_chain = gun.get("mark").get("boss").get("name");
boss_name_chain
.once(|data, _key| {
println!("Mark's boss is: {:?}", data);
})
.await?;
let list_chain = gun.get("list");
list_chain
.set(json!({"type": "cucumber", "goal": "jumping cat"}))
.await?;
Ok(())
}