in src/data/perf_stat.rs [542:569]
fn get_data(
&mut self,
buffer: Vec<ProcessedData>,
query: String,
metrics: &mut DataMetrics,
) -> Result<String> {
let mut values = Vec::new();
for data in buffer {
match data {
ProcessedData::PerfStat(ref value) => values.push(value.clone()),
_ => unreachable!(),
}
}
let param: Vec<(String, String)> = serde_urlencoded::from_str(&query).unwrap();
if param.len() < 2 {
panic!("Not enough arguments");
}
let (_, req_str) = ¶m[1];
match req_str.as_str() {
"keys" => get_named_events(values[0].clone()),
"values" => {
let (_, key) = ¶m[2];
get_values(values, key.to_string(), metrics)
}
_ => panic!("Unsupported API"),
}
}