myc_adapters_shared_lib/models/
redis.rs1use super::SharedClientProvider;
2use crate::models::RedisConfig;
3
4use redis::Client;
5use shaku::Component;
6use std::sync::Arc;
7
8#[derive(Component)]
9#[shaku(interface = SharedClientProvider)]
10pub struct RedisClientWrapper {
11 client: Client,
12 config: RedisConfig,
13}
14
15impl RedisClientWrapper {
16 pub fn new(client: Client, config: RedisConfig) -> Self {
17 Self { client, config }
18 }
19}
20
21impl SharedClientProvider for RedisClientWrapper {
22 fn get_redis_config(&self) -> Arc<RedisConfig> {
23 Arc::new(self.config.clone())
24 }
25
26 fn get_redis_client(&self) -> Arc<Client> {
27 Arc::new(self.client.clone())
28 }
29}