(&mut self)
| 489 | /// Iteration order is undefined. |
| 490 | #[inline] |
| 491 | pub fn drain(&mut self) -> impl Iterator<Item = (Id, T)> + '_ { |
| 492 | assert!(self.entries.len() <= Self::MAX_CAPACITY); |
| 493 | self.len = 0; |
| 494 | self.free = None; |
| 495 | self.entries |
| 496 | .drain(..) |
| 497 | .enumerate() |
| 498 | .filter_map(|(i, e)| match e { |
| 499 | Entry::Occupied(x) => Some((Id(EntryIndex::new(i)), x)), |
| 500 | Entry::Free { .. } => None, |
| 501 | }) |
| 502 | } |
| 503 | |
| 504 | /// Clear all of the values from inside this slab. |
| 505 | /// |
no test coverage detected