use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct Person {
first_name: String,
last_name: String,
age: u8,
}
fn main() -> std::io::Result<()> {
let nc = nats::connect("demo.nats.io")?;
let subj = nc.new_inbox();
let p = Person {
first_name: "derek".to_owned(),
last_name: "collison".to_owned(),
age: 22,
};
let sub = nc.subscribe(&subj)?;
nc.publish(&subj, serde_json::to_vec(&p)?)?;
let mut p2 = sub.iter().map(move |msg| {
let p: Person = serde_json::from_slice(&msg.data).unwrap();
p
});
println!("received {:?}", p2.next().unwrap());
Ok(())
}