1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use std::sync::Arc; use metriki_core::MetricsRegistry; use warp::{self, Filter}; /// Inject metriki `MetricRegistry` into your warp handler /// /// ```no_run /// use std::sync::Arc; /// /// use metriki_core::MetricsRegistry; /// use metriki_warp::with_metrics; /// use warp::{self, Filter}; /// /// let metrics = MetricsRegistry::arc(); /// let router = warp::get() /// .and(with_metrics(metrics)) /// .map(|mtk: Arc<MetricsRegistry>| { /// mtk.meter("hit").mark(); /// "yes" /// }); /// ``` /// pub fn with_metrics( m: Arc<MetricsRegistry>, ) -> impl Filter<Extract = (Arc<MetricsRegistry>,), Error = std::convert::Infallible> + Clone { warp::any().map(move || m.clone()) }