diff --git a/crates/drainer/src/settings.rs b/crates/drainer/src/settings.rs index 311cee0cede7..e64b5dbd4ad5 100644 --- a/crates/drainer/src/settings.rs +++ b/crates/drainer/src/settings.rs @@ -31,7 +31,7 @@ pub struct CmdLineConf { #[derive(Clone)] pub struct AppState { pub conf: Arc>, - pub encryption_client: Box, + pub encryption_client: Arc, } impl AppState { diff --git a/crates/external_services/src/file_storage.rs b/crates/external_services/src/file_storage.rs index fb419b6ec643..e551cfee2af0 100644 --- a/crates/external_services/src/file_storage.rs +++ b/crates/external_services/src/file_storage.rs @@ -2,7 +2,10 @@ //! Module for managing file storage operations with support for multiple storage schemes. //! -use std::fmt::{Display, Formatter}; +use std::{ + fmt::{Display, Formatter}, + sync::Arc, +}; use common_utils::errors::CustomResult; @@ -39,11 +42,11 @@ impl FileStorageConfig { } /// Retrieves the appropriate file storage client based on the file storage configuration. - pub async fn get_file_storage_client(&self) -> Box { + pub async fn get_file_storage_client(&self) -> Arc { match self { #[cfg(feature = "aws_s3")] - Self::AwsS3 { aws_s3 } => Box::new(aws_s3::AwsFileStorageClient::new(aws_s3).await), - Self::FileSystem => Box::new(file_system::FileSystem), + Self::AwsS3 { aws_s3 } => Arc::new(aws_s3::AwsFileStorageClient::new(aws_s3).await), + Self::FileSystem => Arc::new(file_system::FileSystem), } } } diff --git a/crates/external_services/src/managers/encryption_management.rs b/crates/external_services/src/managers/encryption_management.rs index 4612190926c6..678239c60b1a 100644 --- a/crates/external_services/src/managers/encryption_management.rs +++ b/crates/external_services/src/managers/encryption_management.rs @@ -2,6 +2,8 @@ //! Encryption management util module //! +use std::sync::Arc; + use common_utils::errors::CustomResult; use hyperswitch_interfaces::encryption_interface::{ EncryptionError, EncryptionManagementInterface, @@ -42,12 +44,12 @@ impl EncryptionManagementConfig { /// Retrieves the appropriate encryption client based on the configuration. pub async fn get_encryption_management_client( &self, - ) -> CustomResult, EncryptionError> { + ) -> CustomResult, EncryptionError> { Ok(match self { #[cfg(feature = "aws_kms")] - Self::AwsKms { aws_kms } => Box::new(aws_kms::core::AwsKmsClient::new(aws_kms).await), + Self::AwsKms { aws_kms } => Arc::new(aws_kms::core::AwsKmsClient::new(aws_kms).await), - Self::NoEncryption => Box::new(NoEncryption), + Self::NoEncryption => Arc::new(NoEncryption), }) } } diff --git a/crates/router/src/routes/app.rs b/crates/router/src/routes/app.rs index 83d8c714e923..8d88d9c4b262 100644 --- a/crates/router/src/routes/app.rs +++ b/crates/router/src/routes/app.rs @@ -82,7 +82,7 @@ pub struct SessionState { pub email_client: Arc, #[cfg(feature = "olap")] pub pool: AnalyticsProvider, - pub file_storage_client: Box, + pub file_storage_client: Arc, pub request_id: Option, pub base_url: String, pub tenant: String, @@ -144,8 +144,8 @@ pub struct AppState { #[cfg(feature = "olap")] pub opensearch_client: Arc, pub request_id: Option, - pub file_storage_client: Box, - pub encryption_client: Box, + pub file_storage_client: Arc, + pub encryption_client: Arc, } impl scheduler::SchedulerAppState for AppState { fn get_tenants(&self) -> Vec {