use cyclonedds::{adr, DdsType, OP_RTS, TYPE_4BY};
#[repr(C)]
pub struct SensorReading {
pub sensor_id: i32,
pub temperature: f32,
}
impl DdsType for SensorReading {
fn type_name() -> &'static str {
"SensorReading"
}
fn ops() -> Vec<u32> {
let mut ops = Vec::new();
ops.extend(adr(TYPE_4BY | (1 << 2), 0));
ops.extend(adr(TYPE_4BY, 4));
ops.push(OP_RTS);
ops
}
}
fn main() {
assert_eq!(SensorReading::type_name(), "SensorReading");
assert_eq!(SensorReading::ops().len(), 5); assert_eq!(SensorReading::descriptor_size(), 8); println!("no_std type descriptor works!");
}