summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--native/src/element.rs6
-rw-r--r--web/src/element.rs8
2 files changed, 6 insertions, 8 deletions
diff --git a/native/src/element.rs b/native/src/element.rs
index fab73f77..ae47e893 100644
--- a/native/src/element.rs
+++ b/native/src/element.rs
@@ -171,7 +171,7 @@ where
/// ```
pub fn map<F, B>(self, f: F) -> Element<'a, B, Renderer>
where
- Message: 'static + Clone,
+ Message: 'static,
Renderer: 'a,
B: 'static,
F: 'static + Fn(Message) -> B,
@@ -269,7 +269,6 @@ impl<'a, A, B, Renderer> Map<'a, A, B, Renderer> {
impl<'a, A, B, Renderer> Widget<B, Renderer> for Map<'a, A, B, Renderer>
where
- A: Clone,
Renderer: crate::Renderer,
{
fn width(&self) -> Length {
@@ -309,8 +308,7 @@ where
);
original_messages
- .iter()
- .cloned()
+ .drain(..)
.for_each(|message| messages.push((self.mapper)(message)));
}
diff --git a/web/src/element.rs b/web/src/element.rs
index 85fa7c34..0315d7d6 100644
--- a/web/src/element.rs
+++ b/web/src/element.rs
@@ -38,8 +38,8 @@ impl<'a, Message> Element<'a, Message> {
/// [`Element`]: struct.Element.html
pub fn map<F, B>(self, f: F) -> Element<'a, B>
where
- Message: 'static + Clone,
- B: 'static + Clone,
+ Message: 'static,
+ B: 'static,
F: 'static + Fn(Message) -> B,
{
Element {
@@ -82,8 +82,8 @@ impl<'a, A, B> Map<'a, A, B> {
impl<'a, A, B> Widget<B> for Map<'a, A, B>
where
- A: 'static + Clone,
- B: 'static + Clone,
+ A: 'static,
+ B: 'static,
{
fn node<'b>(
&self,