---
source: metrique-macro/src/aggregate.rs
expression: parsed_file
---
#[metrics]
#[derive(Default)]
#[allow(clippy::type_complexity)]
pub struct AggregatedApiCall {
#[metrics(unit = Millisecond)]
latency: <Histogram<
Duration,
> as ::metrique_aggregation::__macro_plumbing::AggregateValue<Duration>>::Aggregated,
#[metrics(unit = Byte)]
response_size: <Counter as ::metrique_aggregation::__macro_plumbing::AggregateValue<
usize,
>>::Aggregated,
}
impl ::metrique_aggregation::__macro_plumbing::Merge for ApiCall {
type Merged = AggregatedApiCall;
type MergeConfig = ();
fn new_merged(_conf: &Self::MergeConfig) -> Self::Merged {
Self::Merged::default()
}
fn merge(accum: &mut Self::Merged, input: Self) {
<Histogram<
Duration,
> as ::metrique_aggregation::__macro_plumbing::AggregateValue<
Duration,
>>::insert(&mut accum.latency, input.latency);
<Counter as ::metrique_aggregation::__macro_plumbing::AggregateValue<
usize,
>>::insert(&mut accum.response_size, input.response_size);
}
}
impl ::metrique_aggregation::__macro_plumbing::AggregateStrategy for ApiCall {
type Source = ApiCall;
type Key = ::metrique_aggregation::__macro_plumbing::NoKey;
}
#[metrics]
pub struct ApiCall {
#[metrics(unit = Millisecond)]
latency: Duration,
#[metrics(unit = Byte)]
response_size: usize,
}