use std::time::Instant;
use tower_resilience_core::events::ResilienceEvent;
#[derive(Debug, Clone)]
pub enum RouterEvent {
RequestRouted {
pattern_name: String,
timestamp: Instant,
backend_index: usize,
backend_weight: u32,
},
}
impl ResilienceEvent for RouterEvent {
fn event_type(&self) -> &'static str {
match self {
RouterEvent::RequestRouted { .. } => "request_routed",
}
}
fn timestamp(&self) -> Instant {
match self {
RouterEvent::RequestRouted { timestamp, .. } => *timestamp,
}
}
fn pattern_name(&self) -> &str {
match self {
RouterEvent::RequestRouted { pattern_name, .. } => pattern_name,
}
}
}