| 201 | /// Panics if `elem` is out of bounds. |
| 202 | #[inline] |
| 203 | pub fn insert(&mut self, elem: T) -> bool { |
| 204 | assert!( |
| 205 | elem.as_usize() < self.domain_size, |
| 206 | "inserting element at index {} but domain size is {}", |
| 207 | elem.as_usize(), |
| 208 | self.domain_size, |
| 209 | ); |
| 210 | let (word_index, mask) = word_index_and_mask(elem.as_usize()); |
| 211 | let word_ref = &mut self.words[word_index]; |
| 212 | let word = *word_ref; |
| 213 | let new_word = word | mask; |
| 214 | *word_ref = new_word; |
| 215 | new_word != word |
| 216 | } |
| 217 | |
| 218 | #[inline] |
| 219 | pub fn set(&mut self, elem: T, value: bool) -> bool { |