Adds increment and decrement methods to Gauge (#64)
* Adds increment and decrement methods to Gauge.
This commit is contained in:
parent
22fbdffd24
commit
7fcab1c46e
|
@ -164,6 +164,20 @@ impl ValueHandle {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn increment_gauge(&self, value: i64) {
|
||||
match self.state.deref() {
|
||||
ValueState::Gauge(inner) => inner.fetch_add(value, Ordering::Release),
|
||||
_ => unreachable!("tried to access as gauge, not a gauge"),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn decrement_gauge(&self, value: i64) {
|
||||
match self.state.deref() {
|
||||
ValueState::Gauge(inner) => inner.fetch_sub(value, Ordering::Release),
|
||||
_ => unreachable!("tried to access as gauge, not a gauge"),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn update_histogram(&self, value: u64) {
|
||||
match self.state.deref() {
|
||||
ValueState::Histogram(inner) => inner.record(value),
|
||||
|
@ -313,8 +327,10 @@ mod tests {
|
|||
|
||||
let gauge = ValueHandle::gauge();
|
||||
gauge.update_gauge(23);
|
||||
gauge.increment_gauge(20);
|
||||
gauge.decrement_gauge(1);
|
||||
match gauge.snapshot() {
|
||||
ValueSnapshot::Single(Measurement::Gauge(value)) => assert_eq!(value, 23),
|
||||
ValueSnapshot::Single(Measurement::Gauge(value)) => assert_eq!(value, 42),
|
||||
_ => panic!("incorrect value snapshot type for gauge"),
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,16 @@ impl Gauge {
|
|||
pub fn record(&self, value: i64) {
|
||||
self.handle.update_gauge(value);
|
||||
}
|
||||
|
||||
/// Increments the gauge's value
|
||||
pub fn increment(&self, value: i64) {
|
||||
self.handle.increment_gauge(value);
|
||||
}
|
||||
|
||||
/// Decrements the gauge's value
|
||||
pub fn decrement(&self, value: i64) {
|
||||
self.handle.decrement_gauge(value);
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ValueHandle> for Gauge {
|
||||
|
|
Loading…
Reference in New Issue