use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AggregationBreakdown {
#[serde(rename = "reduce_count")]
pub reduce_count: u32,
#[serde(rename = "collect_count")]
pub collect_count: u32,
#[serde(rename = "build_aggregation")]
pub build_aggregation: u32,
#[serde(rename = "build_leaf_collector_count")]
pub build_leaf_collector_count: u32,
#[serde(rename = "build_leaf_collector")]
pub build_leaf_collector: u32,
#[serde(rename = "collect")]
pub collect: u32,
#[serde(rename = "build_aggregation_count")]
pub build_aggregation_count: u32,
#[serde(rename = "initialize_count")]
pub initialize_count: u32,
#[serde(
rename = "post_collection",
default,
skip_serializing_if = "Option::is_none"
)]
pub post_collection: Option<u32>,
#[serde(
rename = "post_collection_count",
default,
skip_serializing_if = "Option::is_none"
)]
pub post_collection_count: Option<u32>,
#[serde(rename = "initialize")]
pub initialize: u32,
#[serde(rename = "reduce")]
pub reduce: u32,
}
impl AggregationBreakdown {
pub fn new(
reduce_count: u32,
collect_count: u32,
build_aggregation: u32,
build_leaf_collector_count: u32,
build_leaf_collector: u32,
collect: u32,
build_aggregation_count: u32,
initialize_count: u32,
initialize: u32,
reduce: u32,
) -> AggregationBreakdown {
AggregationBreakdown {
reduce_count,
collect_count,
build_aggregation,
build_leaf_collector_count,
build_leaf_collector,
collect,
build_aggregation_count,
initialize_count,
post_collection: None,
post_collection_count: None,
initialize,
reduce,
}
}
}