equal
deleted
inserted
replaced
76 }; |
76 }; |
77 self.events.push(event); |
77 self.events.push(event); |
78 event_id |
78 event_id |
79 } |
79 } |
80 |
80 |
81 pub fn cancel(&mut self, gear_id: GearId) {} |
81 fn remove_events<P>(&mut self, predicate: P) |
|
82 where |
|
83 P: Fn(&TimeEvent) -> bool, |
|
84 { |
|
85 let events = self.events.drain().filter(predicate).collect::<Vec<_>>(); |
|
86 self.events.extend(events); |
|
87 } |
|
88 |
|
89 pub fn cancel(&mut self, event_id: EventId) { |
|
90 //self.events.retain(|event| event.event_id != event_id) |
|
91 self.remove_events(|event| event.event_id != event_id) |
|
92 } |
|
93 |
|
94 pub fn cancel_all(&mut self, gear_id: GearId) { |
|
95 //self.events.retain(|event| event.gear_id != gear_id) |
|
96 self.remove_events(|event| event.gear_id != gear_id) |
|
97 } |
82 |
98 |
83 pub fn process(&mut self, time_step: Millis) -> &OccurredEvents { |
99 pub fn process(&mut self, time_step: Millis) -> &OccurredEvents { |
84 self.timeouts.clear(); |
100 self.timeouts.clear(); |
85 self.current_time = self.current_time + time_step; |
101 self.current_time = self.current_time + time_step; |
86 while self |
102 while self |