Skip to main content

flowparser_sflow/counter_records/
temperature.rs

1use nom::IResult;
2use nom::number::complete::{be_i32, be_u32};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct Temperature {
7    /// Minimum temperature reading in degrees Celsius.
8    pub minimum: i32,
9    /// Maximum temperature reading in degrees Celsius.
10    pub maximum: i32,
11    /// Sensor error count.
12    pub errors: u32,
13}
14
15pub(crate) fn parse_temperature(input: &[u8]) -> IResult<&[u8], Temperature> {
16    let (input, minimum) = be_i32(input)?;
17    let (input, maximum) = be_i32(input)?;
18    let (input, errors) = be_u32(input)?;
19
20    Ok((
21        input,
22        Temperature {
23            minimum,
24            maximum,
25            errors,
26        },
27    ))
28}