diff options
author | 2024-05-01 01:39:43 +0200 | |
---|---|---|
committer | 2024-05-01 01:39:43 +0200 | |
commit | b52c7bb610f593fffc624d461dca17ac50c81626 (patch) | |
tree | 19e1ac3268350b422154c6fd1cd3a585e250d3ac /widget/src | |
parent | f5bc336d699d0c6440f6d638a5a437baaabe1e43 (diff) | |
download | iced-b52c7bb610f593fffc624d461dca17ac50c81626.tar.gz iced-b52c7bb610f593fffc624d461dca17ac50c81626.tar.bz2 iced-b52c7bb610f593fffc624d461dca17ac50c81626.zip |
Use an opaque `Id` type for `image::Handle`
Hashing pointers is a terrible idea.
Diffstat (limited to 'widget/src')
-rw-r--r-- | widget/src/image.rs | 8 | ||||
-rw-r--r-- | widget/src/image/viewer.rs | 6 |
2 files changed, 5 insertions, 9 deletions
diff --git a/widget/src/image.rs b/widget/src/image.rs index f673c7b3..21d371b7 100644 --- a/widget/src/image.rs +++ b/widget/src/image.rs @@ -11,8 +11,6 @@ use crate::core::{ ContentFit, Element, Layout, Length, Rectangle, Size, Vector, Widget, }; -use std::hash::Hash; - pub use image::{FilterMethod, Handle}; /// Creates a new [`Viewer`] with the given image `Handle`. @@ -128,7 +126,7 @@ pub fn draw<Renderer, Handle>( filter_method: FilterMethod, ) where Renderer: image::Renderer<Handle = Handle>, - Handle: Clone + Hash, + Handle: Clone, { let Size { width, height } = renderer.measure_image(handle); let image_size = Size::new(width as f32, height as f32); @@ -167,7 +165,7 @@ impl<Message, Theme, Renderer, Handle> Widget<Message, Theme, Renderer> for Image<Handle> where Renderer: image::Renderer<Handle = Handle>, - Handle: Clone + Hash, + Handle: Clone, { fn size(&self) -> Size<Length> { Size { @@ -216,7 +214,7 @@ impl<'a, Message, Theme, Renderer, Handle> From<Image<Handle>> for Element<'a, Message, Theme, Renderer> where Renderer: image::Renderer<Handle = Handle>, - Handle: Clone + Hash + 'a, + Handle: Clone + 'a, { fn from(image: Image<Handle>) -> Element<'a, Message, Theme, Renderer> { Element::new(image) diff --git a/widget/src/image/viewer.rs b/widget/src/image/viewer.rs index 75d73b19..214cb996 100644 --- a/widget/src/image/viewer.rs +++ b/widget/src/image/viewer.rs @@ -10,8 +10,6 @@ use crate::core::{ Vector, Widget, }; -use std::hash::Hash; - /// A frame that displays an image with the ability to zoom in/out and pan. #[allow(missing_debug_implementations)] pub struct Viewer<Handle> { @@ -94,7 +92,7 @@ impl<Message, Theme, Renderer, Handle> Widget<Message, Theme, Renderer> for Viewer<Handle> where Renderer: image::Renderer<Handle = Handle>, - Handle: Clone + Hash, + Handle: Clone, { fn tag(&self) -> tree::Tag { tree::Tag::of::<State>() @@ -401,7 +399,7 @@ impl<'a, Message, Theme, Renderer, Handle> From<Viewer<Handle>> where Renderer: 'a + image::Renderer<Handle = Handle>, Message: 'a, - Handle: Clone + Hash + 'a, + Handle: Clone + 'a, { fn from(viewer: Viewer<Handle>) -> Element<'a, Message, Theme, Renderer> { Element::new(viewer) |