Skip to content

Commit 9146533

Browse files
authored
Merge pull request #749 from rossmacarthur/fix-744
Add more `ToListener` implementations
2 parents d77f394 + 732e4ce commit 9146533

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

src/listener/to_listener_impls.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ where
6161
}
6262
}
6363

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+
6474
impl<State> ToListener<State> for &str
6575
where
6676
State: Clone + Send + Sync + 'static,
@@ -125,6 +135,26 @@ where
125135
}
126136
}
127137

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+
128158
impl<State> ToListener<State> for (&str, u16)
129159
where
130160
State: Clone + Send + Sync + 'static,
@@ -350,4 +380,14 @@ mod parse_tests {
350380
let err = listen("🌊").unwrap_err();
351381
assert_eq!(err.to_string(), "unable to parse listener from `🌊`");
352382
}
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+
}
353393
}

0 commit comments

Comments
 (0)