Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a03302f

Browse files
committedMar 6, 2024·
feat(metrics): impl Atomic<u32> for AtomicU32
1 parent 4eecdc3 commit a03302f

File tree

1 file changed

+42
-16
lines changed

1 file changed

+42
-16
lines changed
 

‎src/metrics/gauge.rs

+42-16
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::encoding::{EncodeGaugeValue, EncodeMetric, MetricEncoder};
66

77
use super::{MetricType, TypedMetric};
88
use std::marker::PhantomData;
9-
use std::sync::atomic::{AtomicI32, Ordering};
9+
use std::sync::atomic::{AtomicI32, AtomicU32, Ordering};
1010
#[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))]
1111
use std::sync::atomic::{AtomicI64, AtomicU64};
1212
use std::sync::Arc;
@@ -134,55 +134,81 @@ pub trait Atomic<N> {
134134
fn get(&self) -> N;
135135
}
136136

137-
#[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))]
138-
impl Atomic<i64> for AtomicI64 {
139-
fn inc(&self) -> i64 {
137+
impl Atomic<i32> for AtomicI32 {
138+
fn inc(&self) -> i32 {
140139
self.inc_by(1)
141140
}
142141

143-
fn inc_by(&self, v: i64) -> i64 {
142+
fn inc_by(&self, v: i32) -> i32 {
144143
self.fetch_add(v, Ordering::Relaxed)
145144
}
146145

147-
fn dec(&self) -> i64 {
146+
fn dec(&self) -> i32 {
148147
self.dec_by(1)
149148
}
150149

151-
fn dec_by(&self, v: i64) -> i64 {
150+
fn dec_by(&self, v: i32) -> i32 {
152151
self.fetch_sub(v, Ordering::Relaxed)
153152
}
154153

155-
fn set(&self, v: i64) -> i64 {
154+
fn set(&self, v: i32) -> i32 {
156155
self.swap(v, Ordering::Relaxed)
157156
}
158157

159-
fn get(&self) -> i64 {
158+
fn get(&self) -> i32 {
160159
self.load(Ordering::Relaxed)
161160
}
162161
}
163162

164-
impl Atomic<i32> for AtomicI32 {
165-
fn inc(&self) -> i32 {
163+
impl Atomic<u32> for AtomicU32 {
164+
fn inc(&self) -> u32 {
166165
self.inc_by(1)
167166
}
168167

169-
fn inc_by(&self, v: i32) -> i32 {
168+
fn inc_by(&self, v: u32) -> u32 {
170169
self.fetch_add(v, Ordering::Relaxed)
171170
}
172171

173-
fn dec(&self) -> i32 {
172+
fn dec(&self) -> u32 {
174173
self.dec_by(1)
175174
}
176175

177-
fn dec_by(&self, v: i32) -> i32 {
176+
fn dec_by(&self, v: u32) -> u32 {
178177
self.fetch_sub(v, Ordering::Relaxed)
179178
}
180179

181-
fn set(&self, v: i32) -> i32 {
180+
fn set(&self, v: u32) -> u32 {
182181
self.swap(v, Ordering::Relaxed)
183182
}
184183

185-
fn get(&self) -> i32 {
184+
fn get(&self) -> u32 {
185+
self.load(Ordering::Relaxed)
186+
}
187+
}
188+
189+
#[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))]
190+
impl Atomic<i64> for AtomicI64 {
191+
fn inc(&self) -> i64 {
192+
self.inc_by(1)
193+
}
194+
195+
fn inc_by(&self, v: i64) -> i64 {
196+
self.fetch_add(v, Ordering::Relaxed)
197+
}
198+
199+
fn dec(&self) -> i64 {
200+
self.dec_by(1)
201+
}
202+
203+
fn dec_by(&self, v: i64) -> i64 {
204+
self.fetch_sub(v, Ordering::Relaxed)
205+
}
206+
207+
fn set(&self, v: i64) -> i64 {
208+
self.swap(v, Ordering::Relaxed)
209+
}
210+
211+
fn get(&self) -> i64 {
186212
self.load(Ordering::Relaxed)
187213
}
188214
}

0 commit comments

Comments
 (0)
Please sign in to comment.