use proxyapi_models::{ProxiedRequest, ProxiedResponse};
use serde::{Deserialize, Serialize};
use std::sync::atomic::{AtomicU64, Ordering};
static NEXT_ID: AtomicU64 = AtomicU64::new(1);
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ProxyEvent {
RequestComplete {
id: u64,
request: Box<ProxiedRequest>,
response: Box<ProxiedResponse>,
},
Error {
message: String,
},
}
pub(crate) fn next_id() -> u64 {
NEXT_ID.fetch_add(1, Ordering::Relaxed)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_next_id_increments() {
let id1 = next_id();
let id2 = next_id();
assert!(id2 > id1);
}
}