[no description]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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)
    }
}