Skip to content

Commit 123241c

Browse files
committed
Add RedisConnector::boxed_connector()
1 parent 3d4f68d commit 123241c

File tree

3 files changed

+30
-20
lines changed

3 files changed

+30
-20
lines changed

CHANGES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changes
22

3+
## [0.3.0-b.3] - 2021-12-25
4+
5+
* Add RedisConnector::boxed_connector()
6+
37
## [0.3.0-b.2] - 2021-12-24
48

59
* Update service trait

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ntex-redis"
3-
version = "0.3.0-b.2"
3+
version = "0.3.0-b.3"
44
authors = ["ntex contributors <[email protected]>"]
55
description = "Redis client"
66
documentation = "https://docs.rs/ntex-redis"

src/connector.rs

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,7 @@ where
3737
}
3838
}
3939

40-
impl<A, T> RedisConnector<A, T>
41-
where
42-
A: Address + Clone,
43-
T: Service<Connect<A>, Response = IoBoxed, Error = connect::ConnectError>,
44-
{
40+
impl<A, T> RedisConnector<A, T> {
4541
/// Add redis auth password
4642
pub fn password<U>(mut self, password: U) -> Self
4743
where
@@ -62,19 +58,26 @@ where
6258
}
6359

6460
/// Use custom connector
65-
pub fn connector<Io, U>(
66-
self,
67-
connector: U,
68-
) -> RedisConnector<
69-
A,
70-
impl Service<Connect<A>, Response = IoBoxed, Error = connect::ConnectError>,
71-
>
61+
pub fn connector<Io, U>(self, connector: U) -> RedisConnector<A, Boxed<U, Connect<A>>>
7262
where
7363
U: Service<Connect<A>, Response = Io, Error = connect::ConnectError>,
7464
IoBoxed: From<Io>,
7565
{
7666
RedisConnector {
77-
connector: connector.map(|io| IoBoxed::from(io)),
67+
connector: Boxed::new(connector),
68+
address: self.address,
69+
passwords: self.passwords,
70+
pool: self.pool,
71+
}
72+
}
73+
74+
/// Use custom boxed connector
75+
pub fn boxed_connector<U>(self, connector: U) -> RedisConnector<A, U>
76+
where
77+
U: Service<Connect<A>, Response = IoBoxed, Error = connect::ConnectError>,
78+
{
79+
RedisConnector {
80+
connector,
7881
address: self.address,
7982
passwords: self.passwords,
8083
pool: self.pool,
@@ -90,7 +93,7 @@ where
9093
RedisConnector {
9194
address: self.address,
9295
passwords: self.passwords,
93-
connector: openssl::Connector::new(connector).seal(),
96+
connector: Boxed::new(openssl::Connector::new(connector)),
9497
pool: self.pool,
9598
}
9699
}
@@ -100,18 +103,21 @@ where
100103
pub fn rustls(
101104
self,
102105
config: ClientConfig,
103-
) -> RedisConnector<
104-
A,
105-
impl Service<Request = Connect<A>, Response = IoBoxed, Error = connect::ConnectError>,
106-
> {
106+
) -> RedisConnector<A, Boxed<rustls::Connector<A>, Connect<A>>> {
107107
RedisConnector {
108108
address: self.address,
109109
passwords: self.passwords,
110-
connector: rustls::Connector::new(config).map(|io| IoBoxed::from(io)),
110+
connector: Boxed::new(rustls::Connector::new(config)),
111111
pool: self.pool,
112112
}
113113
}
114+
}
114115

116+
impl<A, T> RedisConnector<A, T>
117+
where
118+
A: Address + Clone,
119+
T: Service<Connect<A>, Response = IoBoxed, Error = connect::ConnectError>,
120+
{
115121
/// Connect to redis server and create shared client
116122
pub fn connect(&self) -> impl Future<Output = Result<Client, ConnectError>> {
117123
let pool = self.pool;

0 commit comments

Comments
 (0)