mod builder;
pub mod readiness;
pub use builder::{MetricsBuilder, MetricsInstanceBuilder};
use pdk_core::classy::MetricsHost;
use std::rc::Rc;
pub trait Metric {
fn increase(&self, offset: i64);
fn set(&self, value: u64);
fn get(&self) -> u64;
}
pub struct MetricsInstance {
metrics: Rc<dyn MetricsHost>,
id: u32,
}
impl Metric for MetricsInstance {
fn increase(&self, offset: i64) {
self.metrics.increment_metric(self.id, offset);
}
fn set(&self, value: u64) {
self.metrics.record_metric(self.id, value);
}
fn get(&self) -> u64 {
self.metrics.get_metric(self.id)
}
}