Use strum to iterate through enum variants and get their names (#35933)

`strum` allows us to avoid manually listing enum variant names and also
to get their names as static strings. We cannot use this for all cases
due to https://github.com/Peternator7/strum/issues/152, but we can
still use it to remove a lot of code.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-03-13 13:00:31 +01:00 committed by GitHub
parent 959720db0a
commit 294a649a6c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 51 additions and 285 deletions

View file

@ -8,6 +8,7 @@ use std::cell::Ref;
use std::collections::HashMap;
use base::id::PipelineId;
use strum::VariantArray;
use crate::messaging::ScriptEventLoopSender;
use crate::task::TaskCanceller;
@ -36,7 +37,7 @@ impl TaskCancellers {
Self::OnePerTaskSource(..) => {
// We must create the canceller if they aren't created because we want future
// tasks to be ignored completely.
for task_source_name in TaskSourceName::all() {
for task_source_name in TaskSourceName::VARIANTS.iter() {
self.get(*task_source_name)
.cancelled
.store(true, Ordering::SeqCst)