use std::sync::Arc; use application::use_cases::{GetProfile, LoginUser, RegisterUser}; {% if storage %} use domain::ports::{StoragePort, TokenIssuer}; {% else %} use domain::ports::TokenIssuer; {% endif %} #[derive(Clone)] pub struct AppState { pub register_uc: Arc, pub login_uc: Arc, pub get_profile_uc: Arc, pub token_issuer: Arc, {% if storage %}pub storage: Arc,{% endif %} } impl AppState { pub fn new( register_uc: Arc, login_uc: Arc, get_profile_uc: Arc, token_issuer: Arc, {% if storage %}storage: Arc,{% endif %} ) -> Self { Self { register_uc, login_uc, get_profile_uc, token_issuer{% if storage %}, storage{% endif %} } } }