sindit-senml 0.3.0

Rust implementation of the SenML RFC8428 proposed standard
Documentation
// See
// https://github.com/Marcono1234/struson/discussions/19
#[cfg(test)]
mod tests {
    use crate::SenMLRecord;
    use struson::reader::{JsonReader, JsonStreamReader};

    #[test]
    fn test_stream() -> Result<(), Box<dyn std::error::Error>> {
        let json = r#"[{"n":"temperature","v":42.0}]"#;
        let reader = std::io::BufReader::new(json.as_bytes());
        let mut json_reader = JsonStreamReader::new(reader);

        json_reader.begin_array().expect("Begin array error");

        while json_reader.has_next()? {
            let record: SenMLRecord = json_reader.deserialize_next()?;
            assert_eq!(record.name.as_deref(), Some("temperature"));
            assert_eq!(record.value, Some(42.0));
        }

        json_reader.end_array()?;
        json_reader.consume_trailing_whitespace()?;

        Ok(())
    }
}