File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -493,21 +493,26 @@ pub trait Acceptor<T> {
493
493
/// then `accept` returns `None`.
494
494
fn accept ( & mut self ) -> Option < T > ;
495
495
496
- /// Create an iterator over incoming connections
496
+ /// Create an iterator over incoming connection attempts
497
497
fn incoming < ' r > ( & ' r mut self ) -> IncomingIterator < ' r , Self > {
498
498
IncomingIterator { inc : self }
499
499
}
500
500
}
501
501
502
502
/// An infinite iterator over incoming connection attempts.
503
503
/// Calling `next` will block the task until a connection is attempted.
504
+ ///
505
+ /// Since connection attempts can continue forever, this iterator always returns Some.
506
+ /// The Some contains another Option representing whether the connection attempt was succesful.
507
+ /// A successful connection will be wrapped in Some.
508
+ /// A failed connection is represented as a None and raises a condition.
504
509
struct IncomingIterator < ' self , A > {
505
510
priv inc: & ' self mut A ,
506
511
}
507
512
508
- impl < ' self , T , A : Acceptor < T > > Iterator < T > for IncomingIterator < ' self , A > {
509
- fn next ( & mut self ) -> Option < T > {
510
- self . inc . accept ( )
513
+ impl < ' self , T , A : Acceptor < T > > Iterator < Option < T > > for IncomingIterator < ' self , A > {
514
+ fn next ( & mut self ) -> Option < Option < T > > {
515
+ Some ( self . inc . accept ( ) )
511
516
}
512
517
}
513
518
You can’t perform that action at this time.
0 commit comments