File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -336,6 +336,10 @@ impl<T: Component> Events<T> {
336336
337337 /// Creates a draining iterator that removes all events.
338338 pub fn drain ( & mut self ) -> impl Iterator < Item = T > + ' _ {
339+ self . a_start_event_count = 0 ;
340+ self . b_start_event_count = 0 ;
341+ self . event_count = 0 ;
342+
339343 let map = |i : EventInstance < T > | i. event ;
340344 match self . state {
341345 State :: A => self
@@ -480,4 +484,24 @@ mod tests {
480484 ) -> Vec < TestEvent > {
481485 reader. iter ( events) . cloned ( ) . collect :: < Vec < TestEvent > > ( )
482486 }
487+
488+ #[ test]
489+ fn test_events_drain ( ) {
490+ struct E ;
491+ let mut events = Events :: < E > :: default ( ) ;
492+ let mut reader = events. get_reader ( ) ;
493+
494+ assert ! ( reader. iter( & events) . next( ) . is_none( ) ) ;
495+
496+ events. send ( E ) ;
497+ assert ! ( reader. iter( & events) . next( ) . is_some( ) ) ;
498+ assert ! ( reader. iter( & events) . next( ) . is_none( ) ) ;
499+
500+ let _ = events. drain ( ) ;
501+ assert ! ( reader. iter( & events) . next( ) . is_none( ) ) ;
502+
503+ events. send ( E ) ;
504+ assert ! ( reader. iter( & events) . next( ) . is_some( ) ) ;
505+ assert ! ( reader. iter( & events) . next( ) . is_none( ) ) ;
506+ }
483507}
You can’t perform that action at this time.
0 commit comments