flowparser_sflow/flow_records/
extended_user.rs1use 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}