diff options
| author | MatthieuCoder <matthieu@matthieu-dev.xyz> | 2023-01-02 18:59:03 +0400 |
|---|---|---|
| committer | MatthieuCoder <matthieu@matthieu-dev.xyz> | 2023-01-02 18:59:03 +0400 |
| commit | f8c2a144e2f3e47371f5e8352e7a7a0b6707bf88 (patch) | |
| tree | 8c1e6bd157ac599429c806f9aa9bc9dbc28140ed /libs/shared/src/redis.rs | |
| parent | 46fd26962ef55f8b557f7e36d3aee915a819c88c (diff) | |
restructure project
Diffstat (limited to 'libs/shared/src/redis.rs')
| -rw-r--r-- | libs/shared/src/redis.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/libs/shared/src/redis.rs b/libs/shared/src/redis.rs index a196f8d..5753fb6 100644 --- a/libs/shared/src/redis.rs +++ b/libs/shared/src/redis.rs @@ -1,6 +1,6 @@ -use redis::Client; +use redis::{aio::MultiplexedConnection, Client}; use serde::Deserialize; - +use std::{future::Future, pin::Pin}; #[derive(Clone, Debug, Deserialize)] pub struct RedisConfiguration { @@ -13,3 +13,18 @@ impl Into<Client> for RedisConfiguration { redis::Client::open(self.url).unwrap() } } + +impl From<RedisConfiguration> + for Pin<Box<dyn Future<Output = anyhow::Result<MultiplexedConnection>>>> +{ + fn from(value: RedisConfiguration) -> Self { + Box::pin(async move { + let con = Client::open(value.url)?; + let (multiplex, ready) = con.create_multiplexed_tokio_connection().await?; + + tokio::spawn(ready); + + Ok(multiplex) + }) + } +} |
