Skip to main content

luaur_analysis/methods/
set_begin.rs

1//! Node: `cxx:Method:Luau.Analysis:Analysis/include/Luau/Set.h:104:set_iteration`
2//! Source: `Analysis/include/Luau/Set.h:104-199` (hand-ported)
3
4use crate::records::set::Set;
5
6impl<T: Clone + core::hash::Hash + PartialEq> Set<T> {
7    /// C++ `begin()/end()` over live entries only. `erase` leaves tombstones in
8    /// the underlying map, so iteration must skip entries whose presence bit is
9    /// false.
10    pub fn iter(&self) -> impl Iterator<Item = &T> {
11        self.mapping
12            .iter()
13            .filter_map(|(element, present)| if *present { Some(element) } else { None })
14    }
15}