use reinhardt_core::exception::Result;
use reinhardt_http::{Request, Response};
use crate::handler::BaseHandler;
pub struct Dispatcher {
handler: BaseHandler,
}
impl Dispatcher {
pub fn new(handler: BaseHandler) -> Self {
Self { handler }
}
pub async fn dispatch(&self, request: Request) -> Result<Response> {
self.handler.handle_request(request).await.map_err(|e| {
reinhardt_core::exception::Error::Internal(format!("Dispatch error: {}", e))
})
}
}
impl Default for Dispatcher {
fn default() -> Self {
Self::new(BaseHandler::default())
}
}