diff --git a/src/client/server/mod.rs b/src/client/server/mod.rs index f01fbe6..5c29226 100644 --- a/src/client/server/mod.rs +++ b/src/client/server/mod.rs @@ -257,15 +257,15 @@ impl IrcServer { } /// An Iterator over an IrcServer's incoming Messages. -pub struct ServerIterator<'a, T: IrcRead, U: IrcWrite> { +pub struct ServerIterator<'a, T: IrcRead + 'a, U: IrcWrite + 'a> { server: &'a IrcServer } /// An Iterator over an IrcServer's incoming Commands. -pub type ServerCmdIterator<'a, T, U> = +pub type ServerCmdIterator<'a, T: IrcRead + 'a, U: IrcWrite + 'a> = Map, fn(Result) -> Result>; -impl<'a, T: IrcRead, U: IrcWrite> ServerIterator<'a, T, U> { +impl<'a, T: IrcRead + 'a, U: IrcWrite + 'a> ServerIterator<'a, T, U> { /// Creates a new ServerIterator for the desired IrcServer. pub fn new(server: &IrcServer) -> ServerIterator { ServerIterator { server: server } @@ -284,7 +284,7 @@ impl<'a, T: IrcRead, U: IrcWrite> ServerIterator<'a, T, U> { } } -impl<'a, T: IrcRead, U: IrcWrite> Iterator for ServerIterator<'a, T, U> { +impl<'a, T: IrcRead + 'a, U: IrcWrite + 'a> Iterator for ServerIterator<'a, T, U> { type Item = Result; fn next(&mut self) -> Option> { let res = self.get_next_line().and_then(|msg|