typehints_my_apple/
args.rs

1pub trait A8<A> { fn a8(arg8: A) -> Self; }
2
3pub trait A7<A> { fn a7(arg7: A) -> Self; }
4
5pub trait A6<A> { fn a6(arg6: A) -> Self; }
6
7pub trait A5<A> { fn a5(arg5: A) -> Self; }
8
9pub trait A4<A> { fn a4(arg4: A) -> Self; }
10
11pub trait A3<A> { fn a3(arg3: A) -> Self; }
12
13pub trait A2<A> { fn a2(arg2: A) -> Self; }
14
15pub trait A1<A> { fn a1(arg1: A) -> Self; }
16
17pub trait Call<Return> where Self: Sized {
18    fn call(args: Vec<Self>) -> Return;
19}
20
21// I will leave this in here, for reference and later used.
22// pub enum Arg_3<A, B, C> {
23//     ARG_3(A),
24//     ARG_2(B),
25//     ARG_1(C),
26//
27// }
28//
29// impl<A, B, C> A3<A> for Arg_3<A, B, C> {
30//     fn a3(arg3: A) -> Self { Self::ARG_3(arg3) }
31// }
32//
33// impl<A, B, C> A2<B> for Arg_3<A, B, C> {
34//     fn a2(arg2: B) -> Self { Self::ARG_2(arg2) }
35// }  
36//
37// impl<A, B, C> A1<C> for Arg_3<A, B, C> {
38//     fn a1(arg1: C) -> Self { Self::ARG_1(arg1) }
39// }  
40//
41// impl<A, B, C> Arg_3<A, B, C> {
42//     pub fn generate<Return>() -> Type_3<A, B, C, Return, Self> {
43//         Type_3::new(PhantomData::default(), Vec::new())
44//     }
45// }