use stano_di::application_context::ApplicationContext;
use std::sync::Arc;
use utoipa_axum::router::OpenApiRouter;
#[doc(hidden)]
pub use inventory;
#[doc(hidden)]
pub use utoipa_axum;
pub struct RouteRegistration(
pub fn() -> utoipa_axum::router::UtoipaMethodRouter<Arc<ApplicationContext>>,
);
inventory::collect!(RouteRegistration);
pub fn collect_routes() -> OpenApiRouter<Arc<ApplicationContext>> {
let mut router = OpenApiRouter::new();
for reg in inventory::iter::<RouteRegistration>() {
router = router.routes((reg.0)());
}
router
}