From 5847db06ada3b797506ea357575a21a341095467 Mon Sep 17 00:00:00 2001 From: Antoine Pelisse Date: Thu, 1 Aug 2024 15:25:06 -0700 Subject: [PATCH] metrics: Allow missing Gauge Signed-off-by: Antoine Pelisse --- src/metrics/gauge.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/metrics/gauge.rs b/src/metrics/gauge.rs index 5c8bef9b..abbc8cee 100644 --- a/src/metrics/gauge.rs +++ b/src/metrics/gauge.rs @@ -213,6 +213,33 @@ impl Atomic for AtomicI64 { } } +#[cfg(target_has_atomic = "64")] +impl Atomic for AtomicU64 { + fn inc(&self) -> u64 { + self.inc_by(1) + } + + fn inc_by(&self, v: u64) -> u64 { + self.fetch_add(v, Ordering::Relaxed) + } + + fn dec(&self) -> u64 { + self.dec_by(1) + } + + fn dec_by(&self, v: u64) -> u64 { + self.fetch_sub(v, Ordering::Relaxed) + } + + fn set(&self, v: u64) -> u64 { + self.swap(v, Ordering::Relaxed) + } + + fn get(&self) -> u64 { + self.load(Ordering::Relaxed) + } +} + #[cfg(target_has_atomic = "64")] impl Atomic for AtomicU64 { fn inc(&self) -> f64 {