1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use http::{Request, Response}; use async_trait::async_trait; pub enum RequestCapture { CircumventedResponse(Response<Vec<u8>>), ModifiedRequest(Request<Vec<u8>>), Continue, } pub enum ResponseCapture { ModifiedResponse(Response<Vec<u8>>), Continue, } #[allow(clippy::module_name_repetitions)] #[async_trait] pub trait MitmLayer { async fn capture_request(&mut self, request: &Request<Vec<u8>>) -> RequestCapture; async fn capture_response(&mut self, request: &Request<Vec<u8>>, response: &Response<Vec<u8>>) -> ResponseCapture; }