[no description]
Diffstat (limited to 'src/fns.rs')
| -rw-r--r-- | src/fns.rs | 17 |
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) + } +} |