aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/events.rs18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/events.rs b/src/events.rs
index fbdfbc888..d6f114ed9 100644
--- a/src/events.rs
+++ b/src/events.rs
@@ -331,34 +331,34 @@ impl Message {
331 } 331 }
332} 332}
333 333
334const EVENT_BITS: usize = ((Event::LAST as usize + 31) & !31) / 32;
335
336#[derive(Default)] 334#[derive(Default)]
337struct EventMask { 335struct EventMask {
338 mask: [u32; EVENT_BITS], 336 mask: [u32; Self::WORD_COUNT],
339} 337}
340 338
341impl EventMask { 339impl EventMask {
340 const WORD_COUNT: usize = ((Event::LAST as u32 + (u32::BITS - 1)) / u32::BITS) as usize;
341
342 fn enable(&mut self, event: Event) { 342 fn enable(&mut self, event: Event) {
343 let n = event as u32; 343 let n = event as u32;
344 let word = n >> 5; 344 let word = n / u32::BITS;
345 let bit = n & 0b11111; 345 let bit = n % u32::BITS;
346 346
347 self.mask[word as usize] |= (1 << bit); 347 self.mask[word as usize] |= (1 << bit);
348 } 348 }
349 349
350 fn disable(&mut self, event: Event) { 350 fn disable(&mut self, event: Event) {
351 let n = event as u32; 351 let n = event as u32;
352 let word = n >> 5; 352 let word = n / u32::BITS;
353 let bit = n & 0b11111; 353 let bit = n % u32::BITS;
354 354
355 self.mask[word as usize] &= !(1 << bit); 355 self.mask[word as usize] &= !(1 << bit);
356 } 356 }
357 357
358 fn is_enabled(&self, event: Event) -> bool { 358 fn is_enabled(&self, event: Event) -> bool {
359 let n = event as u32; 359 let n = event as u32;
360 let word = n >> 5; 360 let word = n / u32::BITS;
361 let bit = n & 0b11111; 361 let bit = n % u32::BITS;
362 362
363 self.mask[word as usize] & (1 << bit) > 0 363 self.mask[word as usize] & (1 << bit) > 0
364 } 364 }