luaur_analysis/methods/set_insert_set.rs
1//! Node: `cxx:Method:Luau.Analysis:Analysis/include/Luau/Set.h:34:set_insert`
2//! Source: `Analysis/include/Luau/Set.h:34-47` (hand-ported)
3
4use crate::records::set::Set;
5
6impl<T: Clone + core::hash::Hash + PartialEq> Set<T> {
7 /// C++ `bool insert(const T& element)` — true when newly inserted.
8 pub fn insert(&mut self, element: &T) -> bool {
9 let entry = self.mapping.get_or_insert(element.clone());
10 let fresh = !*entry;
11
12 if fresh {
13 *entry = true;
14 self.entry_count += 1;
15 }
16
17 fresh
18 }
19}