#[cfg(feature = "viewsets")]
use async_trait::async_trait;
#[cfg(feature = "viewsets")]
use reinhardt_http::{Handler, Request, Response, Result};
#[cfg(feature = "viewsets")]
use reinhardt_views::viewsets::{Action, ViewSet};
#[cfg(feature = "viewsets")]
use std::sync::Arc;
#[cfg(feature = "viewsets")]
pub(crate) struct ViewSetHandler {
pub viewset: Arc<dyn ViewSet>,
pub action: Action,
}
#[cfg(feature = "viewsets")]
#[async_trait]
impl Handler for ViewSetHandler {
async fn handle(&self, req: Request) -> Result<Response> {
self.viewset.dispatch(req, self.action.clone()).await
}
}