// src/auth/logic/rbac.rs use tower::ServiceBuilder; use crate::auth::logic::rbac; pub async fn run_server(db_pool: sqlx::PgPool) -> Result<(), Box> { // ... existing setup code ... // Create service layers let adresar_layer = ServiceBuilder::new() .layer(rbac::create_adresar_layer()) .into_inner(); let uctovnictvo_layer = ServiceBuilder::new() .layer(rbac::create_uctovnictvo_layer()) .into_inner(); // Create services with layers let adresar_service = AdresarServer::new(AdresarService { db_pool: db_pool.clone() }) .layer(adresar_layer); let uctovnictvo_service = UctovnictvoServer::new(UctovnictvoService { db_pool: db_pool.clone() }) .layer(uctovnictvo_layer); // ... repeat for other services ... Server::builder() .add_service(auth_server) .add_service(adresar_service) .add_service(uctovnictvo_service) // ... other services ... .serve(addr) .await?; Ok(()) }