fn get_values()

in src/data/meminfodata.rs [179:207]


fn get_values(values: Vec<MeminfoData>, key: String, metrics: &mut DataMetrics) -> Result<String> {
    let time_zero = values[0].time;
    let mut metric = Metric::new(key.clone());
    let mut metadata = GraphMetadata::new();
    let mut end_value = MemData {
        name: key.clone(),
        values: Vec::new(),
    };
    for v in values {
        let value = v
            .data
            .get(&key)
            .ok_or(PDError::VisualizerMeminfoValueGetError(key.to_string()))?;
        /* Bytes => kB */
        let mementry = MemEntry {
            time: v.time - time_zero,
            value: *value / 1024,
        };
        metric.insert_value(mementry.value as f64);
        metadata.update_limits(GraphLimitType::UInt64(mementry.value));
        end_value.values.push(mementry);
    }
    let end_values = EndMemValues {
        data: end_value,
        metadata,
    };
    add_metrics(key, &mut metric, metrics, MEMINFO_FILE_NAME.to_string())?;
    Ok(serde_json::to_string(&end_values)?)
}