fn process_raw_data()

in src/data/netstat.rs [120:157]


    fn process_raw_data(&mut self, buffer: Data) -> Result<ProcessedData> {
        let raw_value = match buffer {
            Data::NetstatRaw(ref value) => value,
            _ => panic!("Invalid Data type in raw file"),
        };
        let mut netstat = Netstat::new();
        let reader = BufReader::new(raw_value.data.as_bytes());
        let mut map: HashMap<String, u64> = HashMap::new();
        let mut lines = reader.lines();

        while let (Some(line1), Some(line2)) = (lines.next(), lines.next()) {
            let binding = line1.unwrap();
            let params: Vec<&str> = binding.split_whitespace().collect();

            let binding = line2.unwrap();
            let values: Vec<&str> = binding.split_whitespace().collect();

            if params.len() != values.len() {
                panic!("Parameter count should match value count!")
            }

            let mut param_itr = params.iter();
            let mut val_itr = values.iter();

            let tag = param_itr.next().unwrap().to_owned();
            val_itr.next();

            for param in param_itr {
                let val = val_itr.next().ok_or(PDError::ProcessorOptionExtractError)?;
                map.insert(tag.to_owned() + " " + param.to_owned(), val.parse::<u64>()?);
            }
        }

        netstat.set_time(raw_value.time);
        netstat.set_data(map);
        let processed_data = ProcessedData::Netstat(netstat);
        Ok(processed_data)
    }