use crate::{ common::{ domain::failure::failure::IFailure, infrastructure::mapper::error_to_failure_mapper::error_to_failure_mapper, }, features::{{feature_name}}::{ domain::repository::i_{{snake_case_feature_name}}_repository::I{{capitalize_feature_name}}Repository, infrastructure::data_access::{{snake_case_feature_name}}_data_source::{{capitalize_feature_name}}DataSource, }, }; pub struct {{capitalize_feature_name}}RepositoryImpl { {{snake_case_feature_name}}_data_source: {{capitalize_feature_name}}DataSource, } impl {{capitalize_feature_name}}RepositoryImpl { pub fn new( {{snake_case_feature_name}}_data_source: Box<{{capitalize_feature_name}}DataSource> ) -> {{capitalize_feature_name}}RepositoryImpl { {{capitalize_feature_name}}RepositoryImpl { {{snake_case_feature_name}}_data_source: *{{snake_case_feature_name}}_data_source } } } impl I{{capitalize_feature_name}}Repository for {{capitalize_feature_name}}RepositoryImpl { // Sign up the user and return the tokens // fn sign_up(&self, entity: CredentialsInfoEntity) -> Result> { // let user_result = self.user_auth_data_source.sign_up( // credentials_info_entity_dto_mapper(Box::new(entity))? // ); // } }