Skip to main content

flowparser_sflow/counter_records/
virt_node.rs

1use nom::IResult;
2use nom::number::complete::{be_u32, be_u64};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct VirtNode {
7    pub mhz: u32,
8    pub cpus: u32,
9    pub memory: u64,
10    pub memory_free: u64,
11    pub num_domains: u32,
12}
13
14pub(crate) fn parse_virt_node(input: &[u8]) -> IResult<&[u8], VirtNode> {
15    let (input, mhz) = be_u32(input)?;
16    let (input, cpus) = be_u32(input)?;
17    let (input, memory) = be_u64(input)?;
18    let (input, memory_free) = be_u64(input)?;
19    let (input, num_domains) = be_u32(input)?;
20
21    Ok((
22        input,
23        VirtNode {
24            mhz,
25            cpus,
26            memory,
27            memory_free,
28            num_domains,
29        },
30    ))
31}