diff --git a/src/borrowed.rs b/src/borrowed.rs index 77e90db..eae70f3 100644 --- a/src/borrowed.rs +++ b/src/borrowed.rs @@ -50,6 +50,12 @@ impl HasDisplayHandle for &H { } } +impl HasDisplayHandle for &mut H { + fn display_handle(&self) -> Result, HandleError> { + (**self).display_handle() + } +} + #[cfg(feature = "alloc")] impl HasDisplayHandle for alloc::boxed::Box { fn display_handle(&self) -> Result, HandleError> { @@ -167,6 +173,12 @@ impl HasWindowHandle for &H { } } +impl HasWindowHandle for &mut H { + fn window_handle(&self) -> Result, HandleError> { + (**self).window_handle() + } +} + #[cfg(feature = "alloc")] impl HasWindowHandle for alloc::boxed::Box { fn window_handle(&self) -> Result, HandleError> { diff --git a/src/lib.rs b/src/lib.rs index 1a2badb..07740e1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -79,6 +79,11 @@ unsafe impl<'a, T: HasRawWindowHandle + ?Sized> HasRawWindowHandle for &'a T { (*self).raw_window_handle() } } +unsafe impl<'a, T: HasRawWindowHandle + ?Sized> HasRawWindowHandle for &'a mut T { + fn raw_window_handle(&self) -> Result { + (**self).raw_window_handle() + } +} #[cfg(feature = "alloc")] #[cfg_attr(docsrs, doc(cfg(feature = "alloc")))] unsafe impl HasRawWindowHandle for alloc::rc::Rc { @@ -220,6 +225,12 @@ unsafe impl<'a, T: HasRawDisplayHandle + ?Sized> HasRawDisplayHandle for &'a T { } } +unsafe impl<'a, T: HasRawDisplayHandle + ?Sized> HasRawDisplayHandle for &'a mut T { + fn raw_display_handle(&self) -> Result { + (**self).raw_display_handle() + } +} + #[cfg(feature = "alloc")] #[cfg_attr(docsrs, doc(cfg(feature = "alloc")))] unsafe impl HasRawDisplayHandle for alloc::rc::Rc {