#[non_exhaustive]pub enum MetricValueProvider {
Measurable(Box<dyn Measurable>),
Gauge(Box<dyn Gauge>),
}Expand description
Super-interface for Measurable or Gauge that provides metric values.
Java’s MetricValueProvider<T> is generic over the produced value type
(Double for Measurable, T for Gauge<T>). Because the public
crate::common::Metric::metric_value returns an erased value, we model the
provider as an enum over the two concrete kinds rather than a generic trait;
the produced value is the type-erased MetricValue.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Measurable(Box<dyn Measurable>)
A measurable quantity (produces an f64).
Gauge(Box<dyn Gauge>)
A gauge (produces an arbitrary instantaneous value).
Implementations§
Source§impl MetricValueProvider
impl MetricValueProvider
Sourcepub fn value(&self, config: &MetricConfig, now: i64) -> MetricValue
pub fn value(&self, config: &MetricConfig, now: i64) -> MetricValue
Returns the current value associated with this metric.
config- The configuration for this metricnow- The POSIX time in milliseconds the measurement is being taken
Auto Trait Implementations§
impl Freeze for MetricValueProvider
impl !RefUnwindSafe for MetricValueProvider
impl Send for MetricValueProvider
impl Sync for MetricValueProvider
impl Unpin for MetricValueProvider
impl UnsafeUnpin for MetricValueProvider
impl !UnwindSafe for MetricValueProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more