LCOV - differential code coverage report
Current view: top level - libs/metrics/src - metric_vec_duration.rs (source / functions) Coverage Total Hit UBC CBC
Current: f6946e90941b557c917ac98cd5a7e9506d180f3e.info Lines: 100.0 % 15 15 15
Current Date: 2023-10-19 02:04:12 Functions: 50.0 % 4 2 2 2
Baseline: c8637f37369098875162f194f92736355783b050.info
Baseline Date: 2023-10-18 20:25:20

           TLA  Line data    Source code
       1                 : //! Helpers for observing duration on `HistogramVec` / `CounterVec` / `GaugeVec` / `MetricVec<T>`.
       2                 : 
       3                 : use std::{future::Future, time::Instant};
       4                 : 
       5                 : pub trait DurationResultObserver {
       6                 :     fn observe_result<T, E>(&self, res: &Result<T, E>, duration: std::time::Duration);
       7                 : }
       8                 : 
       9 CBC         638 : pub async fn observe_async_block_duration_by_result<
      10             638 :     T,
      11             638 :     E,
      12             638 :     F: Future<Output = Result<T, E>>,
      13             638 :     O: DurationResultObserver,
      14             638 : >(
      15             638 :     observer: &O,
      16             638 :     block: F,
      17             638 : ) -> Result<T, E> {
      18             638 :     let start = Instant::now();
      19           40022 :     let result = block.await;
      20             638 :     let duration = start.elapsed();
      21             638 :     observer.observe_result(&result, duration);
      22             638 :     result
      23             638 : }
        

Generated by: LCOV version 2.1-beta