luaur_analysis/methods/set_erase_set.rs
1//! Node: `cxx:Method:Luau.Analysis:Analysis/include/Luau/Set.h:55:set_erase`
2//! Source: `Analysis/include/Luau/Set.h:55-65` (hand-ported)
3
4use crate::records::set::Set;
5
6impl<T: Clone + core::hash::Hash + PartialEq> Set<T> {
7 /// C++ `void erase(T&& element)` / `void erase(const T& element)` —
8 /// tombstones the entry (sets it false) rather than removing the slot.
9 pub fn erase(&mut self, element: &T) {
10 let entry = self.mapping.get_or_insert(element.clone());
11
12 if *entry {
13 *entry = false;
14 self.entry_count -= 1;
15 }
16 }
17}