use nt_client::{subscribe::ReceivedMessage, Client};
#[tokio::main]
async fn main() {
let client = Client::new(Default::default());
client.connect_setup(setup).await.unwrap();
}
fn setup(client: &Client) {
let topic_names = vec!["/topic1".to_owned(), "/topic2".to_owned(), "topic3".to_owned()];
let topics = client.topics(topic_names);
for topic in topics.clone() {
println!("{topic:?}");
}
tokio::spawn(async move {
let mut sub = topics.subscribe(Default::default()).await.unwrap();
loop {
match sub.recv().await {
Ok(ReceivedMessage::Updated((topic, value))) => println!("topic {} updated to {value:?}", topic.name()),
Err(_) => break,
_ => {},
}
}
});
}