use super::{JsonResponse, Request};
use crate::interceptor::Interceptor;
pub use axum::middleware::Next;
use axum::response::Response as AxumResponse;
use std::future::Future;
pub type HttpInterceptorResult = Result<AxumResponse, JsonResponse>;
pub trait OnRequest: Interceptor {
fn on_request(
&self,
req: Request,
) -> impl Future<Output = HttpInterceptorResult>;
}
pub trait OnRequestWithConfig<C>: Interceptor {
fn on_request_with_config(
&self,
config: C,
req: Request,
) -> impl Future<Output = HttpInterceptorResult>;
}