summaryrefslogtreecommitdiff
path: root/src/utils/utils.rs
blob: e784b340c5f651e3c267a203fe67f03e2475a989 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
pub fn reverse_flow_id(flow_id: &String) -> String {
    let mut reversed_flow_id = String::new();
    let mut flow_id_vec: Vec<&str> = flow_id.split(";").collect();
    flow_id_vec.pop();
    for item in flow_id_vec.iter() {
        let mut item_vec: Vec<&str> = item.split("->").collect();
        item_vec.reverse();
        reversed_flow_id.push_str(&item_vec.join("->"));
        reversed_flow_id.push_str(";");
    }
    reversed_flow_id
}

/******************************************************************************
 * TEST
 ******************************************************************************/

#[cfg(test)]
mod tests {
    use super::reverse_flow_id;

    #[test]
    fn test_reverse_flow_id() {
        let flow_id = "192.168.0.101->121.14.154.93;TCP->TCP;50081->443;2409:8034:4025::50:a31->2409:8034:4040:5301::204;UDP->UDP;9993->9994;".to_string();
        assert_eq!(reverse_flow_id(&flow_id), "121.14.154.93->192.168.0.101;TCP->TCP;443->50081;2409:8034:4040:5301::204->2409:8034:4025::50:a31;UDP->UDP;9994->9993;".to_string());
    }
}