1use std::sync::atomic::{AtomicU64, Ordering};
4
5#[derive(Debug, Default)]
8pub(crate) struct InnerAgentStats {
9 pub requests_sent: AtomicU64,
10 pub responses_received: AtomicU64,
11 pub bodies_started: AtomicU64,
12 pub bodies_finished: AtomicU64,
13}
14
15impl InnerAgentStats {
16 pub fn snapshot(&self) -> AgentStats {
17 AgentStats {
18 requests_sent: self.requests_sent.load(Ordering::Relaxed),
19 responses_received: self.responses_received.load(Ordering::Relaxed),
20 bodies_started: self.bodies_started.load(Ordering::Relaxed),
21 bodies_finished: self.bodies_finished.load(Ordering::Relaxed),
22 }
23 }
24}
25
26#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
30#[non_exhaustive]
31pub struct AgentStats {
32 pub requests_sent: u64,
34 pub responses_received: u64,
36 pub bodies_started: u64,
38 pub bodies_finished: u64,
41}