Crate yule_log_macros

Crate yule_log_macros 

Source
Expand description

§My Crate: ULog Macros

Provides #[derive(ULogData)] and #[derive(ULogMessages)] for mapping Rust structs to ULOG subscriptions.

§Example

#[cfg(feature = "macros")]  {
extern crate yule_log_macros;
use yule_log_macros::{ULogData, ULogMessages};

#[derive(ULogData)]
struct VehicleLocalPosition { timestamp: u64, x: f32, y: f32, z: f32 }

#[derive(ULogMessages)]
enum LoggedMessages {
    VehicleLocalPosition(VehicleLocalPosition),
    Other(yule_log::model::msg::UlogMessage),
}

let reader = std::io::BufReader::new(std::fs::File::open("test_data/sample.ulg")?);
let stream = LoggedMessages::stream(reader)?;

for msg_res in stream {
    let msg = msg_res?;
    match msg {
        LoggedMessages::VehicleLocalPosition(v) => println!("x={}", v.x),
        LoggedMessages::Other(_) => {},
    }
}
}

Derive Macros§

ULogData
Derive ULogData for a struct representing a ULOG LoggedDataMessage.
ULogMessages
Derive ULogMessages for an enum wrapping ULogData structs.