flowparser_sflow/counter_records/
host_memory.rs1use 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 HostMemory {
7 pub mem_total: u64,
8 pub mem_free: u64,
9 pub mem_shared: u64,
10 pub mem_buffers: u64,
11 pub mem_cached: u64,
12 pub swap_total: u64,
13 pub swap_free: u64,
14 pub page_in: u32,
15 pub page_out: u32,
16 pub swap_in: u32,
17 pub swap_out: u32,
18}
19
20pub(crate) fn parse_host_memory(input: &[u8]) -> IResult<&[u8], HostMemory> {
21 let (input, mem_total) = be_u64(input)?;
22 let (input, mem_free) = be_u64(input)?;
23 let (input, mem_shared) = be_u64(input)?;
24 let (input, mem_buffers) = be_u64(input)?;
25 let (input, mem_cached) = be_u64(input)?;
26 let (input, swap_total) = be_u64(input)?;
27 let (input, swap_free) = be_u64(input)?;
28 let (input, page_in) = be_u32(input)?;
29 let (input, page_out) = be_u32(input)?;
30 let (input, swap_in) = be_u32(input)?;
31 let (input, swap_out) = be_u32(input)?;
32
33 Ok((
34 input,
35 HostMemory {
36 mem_total,
37 mem_free,
38 mem_shared,
39 mem_buffers,
40 mem_cached,
41 swap_total,
42 swap_free,
43 page_in,
44 page_out,
45 swap_in,
46 swap_out,
47 },
48 ))
49}