metrique-macro 0.1.14

Library for working with unit of work metrics - #[metrics] macro
Documentation
---
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,
}