|
61 | 61 | }
|
62 | 62 | }
|
63 | 63 |
|
| 64 | +impl<State> ToListener<State> for &String |
| 65 | +where |
| 66 | + State: Clone + Send + Sync + 'static, |
| 67 | +{ |
| 68 | + type Listener = ParsedListener<State>; |
| 69 | + fn to_listener(self) -> io::Result<Self::Listener> { |
| 70 | + ToListener::<State>::to_listener(self.as_str()) |
| 71 | + } |
| 72 | +} |
| 73 | + |
64 | 74 | impl<State> ToListener<State> for &str
|
65 | 75 | where
|
66 | 76 | State: Clone + Send + Sync + 'static,
|
@@ -125,6 +135,26 @@ where
|
125 | 135 | }
|
126 | 136 | }
|
127 | 137 |
|
| 138 | +impl<State> ToListener<State> for (String, u16) |
| 139 | +where |
| 140 | + State: Clone + Send + Sync + 'static, |
| 141 | +{ |
| 142 | + type Listener = TcpListener<State>; |
| 143 | + fn to_listener(self) -> io::Result<Self::Listener> { |
| 144 | + ToListener::<State>::to_listener((self.0.as_str(), self.1)) |
| 145 | + } |
| 146 | +} |
| 147 | + |
| 148 | +impl<State> ToListener<State> for (&String, u16) |
| 149 | +where |
| 150 | + State: Clone + Send + Sync + 'static, |
| 151 | +{ |
| 152 | + type Listener = TcpListener<State>; |
| 153 | + fn to_listener(self) -> io::Result<Self::Listener> { |
| 154 | + ToListener::<State>::to_listener((self.0.as_str(), self.1)) |
| 155 | + } |
| 156 | +} |
| 157 | + |
128 | 158 | impl<State> ToListener<State> for (&str, u16)
|
129 | 159 | where
|
130 | 160 | State: Clone + Send + Sync + 'static,
|
@@ -350,4 +380,14 @@ mod parse_tests {
|
350 | 380 | let err = listen("🌊").unwrap_err();
|
351 | 381 | assert_eq!(err.to_string(), "unable to parse listener from `🌊`");
|
352 | 382 | }
|
| 383 | + |
| 384 | + #[test] |
| 385 | + fn to_listener_impls_compile() { |
| 386 | + listen("127.0.0.1:80").unwrap(); |
| 387 | + listen(String::from("127.0.0.1:80")).unwrap(); |
| 388 | + listen(&String::from("127.0.0.1:80")).unwrap(); |
| 389 | + listen(("127.0.0.1", 80)).unwrap(); |
| 390 | + listen((String::from("127.0.0.1"), 80)).unwrap(); |
| 391 | + listen((&String::from("127.0.0.1"), 80)).unwrap(); |
| 392 | + } |
353 | 393 | }
|
0 commit comments