1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use crate::types::{MultipleKeys, RedisKey, RedisValue};

macro_rules! tuple2val {
    ($($id:tt $ty:ident);+) => {
impl<$($ty: Into<RedisValue>),+ > From<($($ty),+)> for RedisValue {
    fn from(value: ($($ty),+)) -> Self {
        RedisValue::Array(vec![$(value.$id.into()),+])
    }
}

impl<$($ty: Into<RedisKey>),+ > From<($($ty),+)> for MultipleKeys {
    fn from(value: ($($ty),+)) -> Self {
        Self{keys:vec![$(value.$id.into()),+]}
    }
}
    };
}

tuple2val!(0 A0; 1 A1);
tuple2val!(0 A0; 1 A1; 2 A2);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9; 10 A10);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9; 10 A10; 11 A11);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9; 10 A10; 11 A11; 12 A12);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9; 10 A10; 11 A11; 12 A12; 13 A13);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9; 10 A10; 11 A11; 12 A12; 13 A13; 14 A14);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9; 10 A10; 11 A11; 12 A12; 13 A13; 14 A14; 15
A15);
tuple2val!(0 A0; 1 A1; 2 A2; 3 A3; 4 A4; 5 A5; 6 A6; 7 A7; 8 A8; 9 A9; 10 A10; 11 A11; 12 A12; 13 A13; 14
A14; 15 A15; 16 A16);