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()); } }