Skip to main content

flowparser_sflow/flow_records/
extended_user.rs

1use nom::IResult;
2use nom::number::complete::be_u32;
3use serde::{Deserialize, Serialize};
4
5use super::parse_sflow_string;
6
7#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub struct ExtendedUser {
9    pub src_charset: u32,
10    pub src_user: String,
11    pub dst_charset: u32,
12    pub dst_user: String,
13}
14
15pub(crate) fn parse_extended_user(input: &[u8]) -> IResult<&[u8], ExtendedUser> {
16    let (input, src_charset) = be_u32(input)?;
17    let (input, src_user) = parse_sflow_string(input)?;
18    let (input, dst_charset) = be_u32(input)?;
19    let (input, dst_user) = parse_sflow_string(input)?;
20
21    Ok((
22        input,
23        ExtendedUser {
24            src_charset,
25            src_user,
26            dst_charset,
27            dst_user,
28        },
29    ))
30}