From f1c1d519c5be7f9f0bbd32b22635659a803425e2 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 6 May 2022 19:42:14 +0200 Subject: Take `AsRef` instead of `Element` in `Tree` API --- pure/src/element.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'pure/src/element.rs') diff --git a/pure/src/element.rs b/pure/src/element.rs index 704b3d0b..5b5038c8 100644 --- a/pure/src/element.rs +++ b/pure/src/element.rs @@ -321,3 +321,11 @@ where .map(move |overlay| overlay.map(mapper)) } } + +impl<'a, Message, Renderer> AsRef + 'a> + for Element<'a, Message, Renderer> +{ + fn as_ref(&self) -> &(dyn Widget + 'a) { + self.widget.as_ref() + } +} -- cgit From 59aeb20600661e55e59223a309146eea68b4c32f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 6 May 2022 23:35:13 +0200 Subject: Use `Borrow` instead of `AsRef` to allow easier casting --- pure/src/element.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'pure/src/element.rs') diff --git a/pure/src/element.rs b/pure/src/element.rs index 5b5038c8..5450db20 100644 --- a/pure/src/element.rs +++ b/pure/src/element.rs @@ -8,6 +8,8 @@ use iced_native::mouse; use iced_native::renderer; use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; +use std::borrow::Borrow; + /// A generic [`Widget`]. /// /// It is useful to build composable user interfaces that do not leak @@ -322,10 +324,18 @@ where } } -impl<'a, Message, Renderer> AsRef + 'a> +impl<'a, Message, Renderer> Borrow + 'a> for Element<'a, Message, Renderer> { - fn as_ref(&self) -> &(dyn Widget + 'a) { - self.widget.as_ref() + fn borrow(&self) -> &(dyn Widget + 'a) { + self.widget.borrow() + } +} + +impl<'a, Message, Renderer> Borrow + 'a> + for &Element<'a, Message, Renderer> +{ + fn borrow(&self) -> &(dyn Widget + 'a) { + self.widget.borrow() } } -- cgit