[no description]
Diffstat (limited to 'src/fns.rs')
-rw-r--r--src/fns.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/fns.rs b/src/fns.rs
new file mode 100644
index 0000000..f4866e4
--- /dev/null
+++ b/src/fns.rs
@@ -0,0 +1,17 @@
+use core::ops::Add;
+
+use crate::{Pick, RePick, Tupl};
+
+pub fn on<const N: usize, U, T: Tupl + Pick<N>>(
+ mut f: impl FnMut(T::At) -> U,
+) -> impl FnMut(T) -> U {
+ move |x| f(x.pick())
+}
+pub fn at<const N: usize, U, T: Tupl + RePick<N, U>>(
+ mut f: impl FnMut(T::At) -> U,
+) -> impl FnMut(T) -> T::New {
+ move |x| {
+ let (l, a, r) = x.depict();
+ T::unpick(l, f(a), r)
+ }
+}