summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar 无限UCW <x-wuxian@qq.com>2022-08-12 01:57:05 +0800
committerLibravatar 无限UCW <x-wuxian@qq.com>2022-08-12 01:57:05 +0800
commitf21d1209aa576a3e597c100fa56afe554dc2babd (patch)
tree3b5ebd93ceff1d6d3b7c62dc5eba44dacbf17fff
parente209349c508fe67d4494cd512eb25899840a13fd (diff)
downloadiced-f21d1209aa576a3e597c100fa56afe554dc2babd.tar.gz
iced-f21d1209aa576a3e597c100fa56afe554dc2babd.tar.bz2
iced-f21d1209aa576a3e597c100fa56afe554dc2babd.zip
Relax `Fn` trait bounds in `Command` & `Action`
-rw-r--r--futures/src/command.rs2
-rw-r--r--native/src/clipboard.rs4
-rw-r--r--native/src/command.rs4
-rw-r--r--native/src/command/action.rs2
-rw-r--r--native/src/system/action.rs6
-rw-r--r--native/src/widget/action.rs6
6 files changed, 12 insertions, 12 deletions
diff --git a/futures/src/command.rs b/futures/src/command.rs
index 05c3a1d0..0b931125 100644
--- a/futures/src/command.rs
+++ b/futures/src/command.rs
@@ -41,7 +41,7 @@ impl<T> Command<T> {
}
/// Applies a transformation to the result of a [`Command`].
- pub fn map<A>(self, f: impl Fn(T) -> A) -> Command<A>
+ pub fn map<A>(self, mut f: impl FnMut(T) -> A) -> Command<A>
where
T: 'static,
{
diff --git a/native/src/clipboard.rs b/native/src/clipboard.rs
index c9105bc0..6a77334c 100644
--- a/native/src/clipboard.rs
+++ b/native/src/clipboard.rs
@@ -30,7 +30,7 @@ impl Clipboard for Null {
/// [`Command`]: crate::Command
pub enum Action<T> {
/// Read the clipboard and produce `T` with the result.
- Read(Box<dyn Fn(Option<String>) -> T>),
+ Read(Box<dyn FnOnce(Option<String>) -> T>),
/// Write the given contents to the clipboard.
Write(String),
@@ -40,7 +40,7 @@ impl<T> Action<T> {
/// Maps the output of a clipboard [`Action`] using the provided closure.
pub fn map<A>(
self,
- f: impl Fn(T) -> A + 'static + MaybeSend + Sync,
+ f: impl FnOnce(T) -> A + 'static + MaybeSend + Sync,
) -> Action<A>
where
T: 'static,
diff --git a/native/src/command.rs b/native/src/command.rs
index b0b12805..3571efc4 100644
--- a/native/src/command.rs
+++ b/native/src/command.rs
@@ -36,7 +36,7 @@ impl<T> Command<T> {
/// Creates a [`Command`] that performs the action of the given future.
pub fn perform<A>(
future: impl Future<Output = T> + 'static + MaybeSend,
- f: impl Fn(T) -> A + 'static + MaybeSend,
+ f: impl FnOnce(T) -> A + 'static + MaybeSend,
) -> Command<A> {
use iced_futures::futures::FutureExt;
@@ -56,7 +56,7 @@ impl<T> Command<T> {
/// Applies a transformation to the result of a [`Command`].
pub fn map<A>(
self,
- f: impl Fn(T) -> A + 'static + MaybeSend + Sync + Clone,
+ f: impl FnMut(T) -> A + 'static + MaybeSend + Sync + Clone,
) -> Command<A>
where
T: 'static,
diff --git a/native/src/command/action.rs b/native/src/command/action.rs
index 3fb02899..549632dd 100644
--- a/native/src/command/action.rs
+++ b/native/src/command/action.rs
@@ -35,7 +35,7 @@ impl<T> Action<T> {
/// [`Command`]: crate::Command
pub fn map<A>(
self,
- f: impl Fn(T) -> A + 'static + MaybeSend + Sync,
+ f: impl FnMut(T) -> A + 'static + MaybeSend + Sync,
) -> Action<A>
where
A: 'static,
diff --git a/native/src/system/action.rs b/native/src/system/action.rs
index dea9536f..7f66141b 100644
--- a/native/src/system/action.rs
+++ b/native/src/system/action.rs
@@ -9,15 +9,15 @@ pub enum Action<T> {
QueryInformation(Box<dyn Closure<T>>),
}
-pub trait Closure<T>: Fn(system::Information) -> T + MaybeSend {}
+pub trait Closure<T>: FnOnce(system::Information) -> T + MaybeSend {}
-impl<T, O> Closure<O> for T where T: Fn(system::Information) -> O + MaybeSend {}
+impl<T, O> Closure<O> for T where T: FnOnce(system::Information) -> O + MaybeSend {}
impl<T> Action<T> {
/// Maps the output of a system [`Action`] using the provided closure.
pub fn map<A>(
self,
- f: impl Fn(T) -> A + 'static + MaybeSend + Sync,
+ f: impl FnOnce(T) -> A + 'static + MaybeSend + Sync,
) -> Action<A>
where
T: 'static,
diff --git a/native/src/widget/action.rs b/native/src/widget/action.rs
index 766e902b..ea1d9b12 100644
--- a/native/src/widget/action.rs
+++ b/native/src/widget/action.rs
@@ -16,7 +16,7 @@ impl<T> Action<T> {
/// Maps the output of an [`Action`] using the given function.
pub fn map<A>(
self,
- f: impl Fn(T) -> A + 'static + MaybeSend + Sync,
+ f: impl FnMut(T) -> A + 'static + MaybeSend + Sync,
) -> Action<A>
where
T: 'static,
@@ -37,7 +37,7 @@ impl<T> Action<T> {
#[allow(missing_debug_implementations)]
struct Map<A, B> {
operation: Box<dyn Operation<A>>,
- f: Box<dyn Fn(A) -> B>,
+ f: Box<dyn FnMut(A) -> B>,
}
impl<A, B> Operation<B> for Map<A, B>
@@ -52,7 +52,7 @@ where
) {
struct MapRef<'a, A, B> {
operation: &'a mut dyn Operation<A>,
- f: &'a dyn Fn(A) -> B,
+ f: &'a mut dyn FnMut(A) -> B,
}
impl<'a, A, B> Operation<B> for MapRef<'a, A, B> {