diff options
| -rw-r--r-- | src/events.rs | 18 |
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 | ||
| 334 | const EVENT_BITS: usize = ((Event::LAST as usize + 31) & !31) / 32; | ||
| 335 | |||
| 336 | #[derive(Default)] | 334 | #[derive(Default)] |
| 337 | struct EventMask { | 335 | struct EventMask { |
| 338 | mask: [u32; EVENT_BITS], | 336 | mask: [u32; Self::WORD_COUNT], |
| 339 | } | 337 | } |
| 340 | 338 | ||
| 341 | impl EventMask { | 339 | impl 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 | } |
