mirror of
https://codeberg.org/YGGverse/psocks.git
synced 2026-03-31 08:25:27 +00:00
28 lines
649 B
Rust
28 lines
649 B
Rust
mod snap;
|
|
|
|
use std::sync::atomic::{AtomicU64, Ordering};
|
|
|
|
pub use snap::{Rules, Snap};
|
|
|
|
#[derive(Default)]
|
|
pub struct Total {
|
|
blocked: AtomicU64,
|
|
request: AtomicU64,
|
|
}
|
|
|
|
impl Total {
|
|
pub fn snap(&self, rules: Rules, seconds_from_startup: f32) -> Snap {
|
|
Snap::shot(
|
|
rules,
|
|
self.request.load(Ordering::Relaxed),
|
|
self.blocked.load(Ordering::Relaxed),
|
|
seconds_from_startup,
|
|
)
|
|
}
|
|
pub fn increase_blocked(&self) {
|
|
self.blocked.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
pub fn increase_request(&self) {
|
|
self.request.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|