use bluer::{self, monitor::Monitor};

use anyhow::Result;
use futures::StreamExt;

struct Data {
    /// Temperature in °C
    temperature: f32,

    /// Humidity in %
    humidity: f32,

    /// CO2 in parts per million
    co2: f32,
}

#[tokio::main(flavor="current_thread")]
async fn main() -> Result<()> {

    let session = bluer::Session::new().await?;

    let adapter = session.default_adapter().await?;

    adapter.set_powered(true).await?;

    let mm = adapter.monitor().await?;
    let mut handle = mm.register(Monitor::default()).await?;

    while let Some(evt) = handle.next().await {
        eprintln!("{:?}", evt);
    }

    Ok(())
}