LCOV - differential code coverage report
Current view: top level - libs/metrics/src - metric_vec_duration.rs (source / functions) Coverage Total Hit UBC CBC
Current: cd44433dd675caa99df17a61b18949c8387e2242.info Lines: 100.0 % 15 15 15
Current Date: 2024-01-09 02:06:09 Functions: 50.0 % 4 2 2 2
Baseline: 66c52a629a0f4a503e193045e0df4c77139e344b.info
Baseline Date: 2024-01-08 15:34:46

           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         550 : pub async fn observe_async_block_duration_by_result<
      10             550 :     T,
      11             550 :     E,
      12             550 :     F: Future<Output = Result<T, E>>,
      13             550 :     O: DurationResultObserver,
      14             550 : >(
      15             550 :     observer: &O,
      16             550 :     block: F,
      17             550 : ) -> Result<T, E> {
      18             550 :     let start = Instant::now();
      19           28234 :     let result = block.await;
      20             550 :     let duration = start.elapsed();
      21             550 :     observer.observe_result(&result, duration);
      22             550 :     result
      23             550 : }
        

Generated by: LCOV version 2.1-beta