pub trait Interceptor: Send {
// Required methods
fn on_receive(&mut self, addr: &SocketAddr, data: &mut [u8]) -> bool;
fn on_send(&mut self, addr: &SocketAddr, data: &mut Vec<u8>) -> bool;
}Expand description
Trait for intercepting packets before/after processing.
Interceptors can inspect, modify, or drop packets at the raw UDP level. This is useful for implementing custom encryption, logging, analytics, or packet inspection.
§Examples
use std::net::SocketAddr;
use bitfold_core::interceptor::Interceptor;
struct LoggingInterceptor;
impl Interceptor for LoggingInterceptor {
fn on_receive(&mut self, _addr: &SocketAddr, data: &mut [u8]) -> bool {
println!("Received {} bytes", data.len());
true // Continue processing
}
fn on_send(&mut self, _addr: &SocketAddr, data: &mut Vec<u8>) -> bool {
println!("Sending {} bytes", data.len());
true // Continue sending
}
}