summaryrefslogtreecommitdiffstats
path: root/pure/src/element.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-06 23:35:13 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-06 23:35:13 +0200
commit59aeb20600661e55e59223a309146eea68b4c32f (patch)
treeec422ae7cb7cb25b5ed8fda642f43fa09a879b5d /pure/src/element.rs
parentf1c1d519c5be7f9f0bbd32b22635659a803425e2 (diff)
downloadiced-59aeb20600661e55e59223a309146eea68b4c32f.tar.gz
iced-59aeb20600661e55e59223a309146eea68b4c32f.tar.bz2
iced-59aeb20600661e55e59223a309146eea68b4c32f.zip
Use `Borrow` instead of `AsRef` to allow easier casting
Diffstat (limited to 'pure/src/element.rs')
-rw-r--r--pure/src/element.rs16
1 files changed, 13 insertions, 3 deletions
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<dyn Widget<Message, Renderer> + 'a>
+impl<'a, Message, Renderer> Borrow<dyn Widget<Message, Renderer> + 'a>
for Element<'a, Message, Renderer>
{
- fn as_ref(&self) -> &(dyn Widget<Message, Renderer> + 'a) {
- self.widget.as_ref()
+ fn borrow(&self) -> &(dyn Widget<Message, Renderer> + 'a) {
+ self.widget.borrow()
+ }
+}
+
+impl<'a, Message, Renderer> Borrow<dyn Widget<Message, Renderer> + 'a>
+ for &Element<'a, Message, Renderer>
+{
+ fn borrow(&self) -> &(dyn Widget<Message, Renderer> + 'a) {
+ self.widget.borrow()
}
}