use cyclonedds::{DataWriter, DdsEntity, DdsTypeDerive, DomainParticipant, Publisher, Topic};
#[derive(DdsTypeDerive, Clone, Debug)]
struct HelloWorld {
id: i32,
message: String,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let participant = DomainParticipant::new(0)?;
let publisher = Publisher::new(participant.entity())?;
let topic = Topic::<HelloWorld>::new(participant.entity(), "Hello")?;
let writer = DataWriter::new(publisher.entity(), topic.entity())?;
for i in 0..5 {
let msg = HelloWorld {
id: i,
message: format!("Hello {}", i),
};
writer.write(&msg)?;
}
let stats = writer.create_statistics()?;
println!("Writer statistics ({} entries):", stats.len());
for entry in stats.entries() {
println!(" {} = {:?}", entry.name(), entry.value());
}
if let Some(entry) = stats.lookup("heartbeat_count")? {
println!("heartbeat_count = {:?}", entry.value());
}
let pstats = participant.create_statistics()?;
println!("\nParticipant statistics ({} entries):", pstats.len());
for entry in pstats.entries() {
println!(" {} = {:?}", entry.name(), entry.value());
}
Ok(())
}