diff options
author | Martin Robinson <mrobinson@igalia.com> | 2025-03-13 13:00:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-13 12:00:31 +0000 |
commit | 294a649a6c96ea0fba05fad59a41dea6c7f1d66d (patch) | |
tree | 5b3de846c3e4954ff7e4d3af666d3c82108b09f9 /components/script/task_source.rs | |
parent | 959720db0a15d207e31e44ffd58d76e9e31b18c9 (diff) | |
download | servo-294a649a6c96ea0fba05fad59a41dea6c7f1d66d.tar.gz servo-294a649a6c96ea0fba05fad59a41dea6c7f1d66d.zip |
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>
Diffstat (limited to 'components/script/task_source.rs')
-rw-r--r-- | components/script/task_source.rs | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/components/script/task_source.rs b/components/script/task_source.rs index cd36e176181..4f18292693e 100644 --- a/components/script/task_source.rs +++ b/components/script/task_source.rs @@ -6,6 +6,7 @@ use std::fmt; use base::id::PipelineId; use malloc_size_of_derive::MallocSizeOf; +use strum_macros::VariantArray; use stylo_atoms::Atom; use crate::dom::bindings::refcounted::Trusted; @@ -19,10 +20,7 @@ use crate::task_manager::TaskManager; /// The names of all task sources, used to differentiate TaskCancellers. Note: When adding a task /// source, update this enum. Note: The HistoryTraversalTaskSource is not part of this, because it /// doesn't implement TaskSource. -/// -/// Note: When adding or removing a [`TaskSourceName`], be sure to also update the return value of -/// [`TaskSourceName::all`]. -#[derive(Clone, Copy, Debug, Eq, Hash, JSTraceable, MallocSizeOf, PartialEq)] +#[derive(Clone, Copy, Debug, Eq, Hash, JSTraceable, MallocSizeOf, PartialEq, VariantArray)] pub(crate) enum TaskSourceName { Canvas, DOMManipulation, @@ -68,28 +66,6 @@ impl From<TaskSourceName> for ScriptThreadEventCategory { } } -impl TaskSourceName { - pub(crate) fn all() -> &'static [TaskSourceName] { - &[ - TaskSourceName::Canvas, - TaskSourceName::DOMManipulation, - TaskSourceName::FileReading, - TaskSourceName::FontLoading, - TaskSourceName::HistoryTraversal, - TaskSourceName::Networking, - TaskSourceName::PerformanceTimeline, - TaskSourceName::PortMessage, - TaskSourceName::UserInteraction, - TaskSourceName::RemoteEvent, - TaskSourceName::Rendering, - TaskSourceName::MediaElement, - TaskSourceName::WebSocket, - TaskSourceName::Timer, - TaskSourceName::Gamepad, - ] - } -} - pub(crate) struct TaskSource<'task_manager> { pub(crate) task_manager: &'task_manager TaskManager, pub(crate) name: TaskSourceName, |