diff options
author | Josh Matthews <josh@joshmatthews.net> | 2024-12-11 00:52:48 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-11 05:52:48 +0000 |
commit | e0cbab2fbb58ac687fb3df1bb56a27e748210bbb (patch) | |
tree | 5c331274b24c62842cd31cfdefe80b29120273dd /components/script/dom/mediasession.rs | |
parent | e10e989abb884f3c83a5c35d4c1b1be887ec0bb1 (diff) | |
download | servo-e0cbab2fbb58ac687fb3df1bb56a27e748210bbb.tar.gz servo-e0cbab2fbb58ac687fb3df1bb56a27e748210bbb.zip |
Rewrite From/TryFrom conversions on generated types to avoid future orphan rule violations (#34554)
* script: Add traits to allow converting between types that are not defined in the script crate.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* script: Rewrite all From/TryFrom implementations on generated WebIDL types to use new Convert/TryConvert traits.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Diffstat (limited to 'components/script/dom/mediasession.rs')
-rw-r--r-- | components/script/dom/mediasession.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/components/script/dom/mediasession.rs b/components/script/dom/mediasession.rs index bd4afd03d5a..8301c6fab5e 100644 --- a/components/script/dom/mediasession.rs +++ b/components/script/dom/mediasession.rs @@ -9,6 +9,7 @@ use embedder_traits::{MediaMetadata as EmbedderMediaMetadata, MediaSessionEvent} use script_traits::{MediaSessionActionType, ScriptMsg}; use super::bindings::trace::HashMapTracedValues; +use crate::conversions::Convert; use crate::dom::bindings::callback::ExceptionHandling; use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::HTMLMediaElementBinding::HTMLMediaElementMethods; @@ -188,8 +189,8 @@ impl MediaSessionMethods<crate::DomTypeHolder> for MediaSession { Some(handler) => self .action_handlers .borrow_mut() - .insert(action.into(), handler.clone()), - None => self.action_handlers.borrow_mut().remove(&action.into()), + .insert(action.convert(), handler.clone()), + None => self.action_handlers.borrow_mut().remove(&action.convert()), }; } @@ -249,9 +250,9 @@ impl MediaSessionMethods<crate::DomTypeHolder> for MediaSession { } } -impl From<MediaSessionAction> for MediaSessionActionType { - fn from(action: MediaSessionAction) -> MediaSessionActionType { - match action { +impl Convert<MediaSessionActionType> for MediaSessionAction { + fn convert(self) -> MediaSessionActionType { + match self { MediaSessionAction::Play => MediaSessionActionType::Play, MediaSessionAction::Pause => MediaSessionActionType::Pause, MediaSessionAction::Seekbackward => MediaSessionActionType::SeekBackward, |