Skip to content

Commit 91cc714

Browse files
committed
Remove unnecessary type for iterator
1 parent 9eac180 commit 91cc714

File tree

1 file changed

+9
-21
lines changed

1 file changed

+9
-21
lines changed

crates/bevy_ecs/src/removal_detection.rs

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use bevy_ecs_macros::SystemParam;
1212

1313
use std::{
1414
fmt::Debug,
15-
iter::Cloned,
15+
iter::{Cloned, Flatten},
1616
marker::PhantomData,
1717
ops::{Deref, DerefMut},
1818
};
@@ -117,27 +117,15 @@ pub struct RemovedComponents<'w, 's, T: Component> {
117117
event_sets: &'w RemovedComponentEvents,
118118
}
119119

120-
pub enum MaybeIter<I: Iterator> {
121-
Iter(I),
122-
Empty,
123-
}
120+
type RemovedIter<'a> = Flatten<std::option::IntoIter<Cloned<ManualEventIterator<'a, Entity>>>>;
124121

125-
impl<I: Iterator> Iterator for MaybeIter<I> {
126-
type Item = I::Item;
127-
fn next(&mut self) -> Option<Self::Item> {
128-
match self {
129-
MaybeIter::Iter(iter) => iter.next(),
130-
MaybeIter::Empty => None,
131-
}
132-
}
133-
}
134122
impl<'w, 's, T: Component> RemovedComponents<'w, 's, T> {
135-
pub fn iter(&mut self) -> MaybeIter<Cloned<ManualEventIterator<'_, Entity>>> {
136-
if let Some(events) = self.event_sets.get(**self.component_id) {
137-
MaybeIter::Iter(self.reader.iter(events).cloned())
138-
} else {
139-
MaybeIter::Empty
140-
}
123+
pub fn iter(&mut self) -> RemovedIter<'_> {
124+
self.event_sets
125+
.get(**self.component_id)
126+
.map(|events| self.reader.iter(events).cloned())
127+
.into_iter()
128+
.flatten()
141129
}
142130
}
143131

@@ -146,7 +134,7 @@ where
146134
T: Component,
147135
{
148136
type Item = Entity;
149-
type IntoIter = MaybeIter<Cloned<ManualEventIterator<'a, Entity>>>;
137+
type IntoIter = RemovedIter<'a>;
150138
fn into_iter(self) -> Self::IntoIter {
151139
self.iter()
152140
}

0 commit comments

Comments
 (0)