oauth2_broker/flows/refresh/
metrics.rs1use std::sync::atomic::{AtomicU64, Ordering};
3
4#[derive(Debug, Default)]
6pub struct RefreshMetrics {
7 attempts: AtomicU64,
8 success: AtomicU64,
9 failure: AtomicU64,
10}
11impl RefreshMetrics {
12 pub fn attempts(&self) -> u64 {
14 self.attempts.load(Ordering::Relaxed)
15 }
16
17 pub fn successes(&self) -> u64 {
19 self.success.load(Ordering::Relaxed)
20 }
21
22 pub fn failures(&self) -> u64 {
24 self.failure.load(Ordering::Relaxed)
25 }
26
27 pub(crate) fn record_attempt(&self) {
28 self.attempts.fetch_add(1, Ordering::Relaxed);
29 }
30
31 pub(crate) fn record_success(&self) {
32 self.success.fetch_add(1, Ordering::Relaxed);
33 }
34
35 pub(crate) fn record_failure(&self) {
36 self.failure.fetch_add(1, Ordering::Relaxed);
37 }
38}