use std::collections::BTreeMap;
use serde::Serialize;
use crate::benchmark::measurement::Measurements;
#[derive(Debug, Default, Clone, Serialize, PartialEq)]
pub struct Parameter {
pub value: String,
}
#[derive(Debug, Default, Clone, Serialize, PartialEq)]
pub struct BenchmarkResult {
pub command: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing)]
pub display_name: String,
#[serde(flatten)]
pub measurements: Measurements,
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub parameters: BTreeMap<String, Parameter>,
}
impl BenchmarkResult {
pub fn get_name(&self) -> &str {
self.name.as_deref().unwrap_or(&self.command)
}
}