Coverage Report

Created: 2026-08-14 08:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/exr-1.74.2/src/image/recursive.rs
Line
Count
Source
1
//! A generic wrapper which can be used to represent recursive types.
2
//! Supports conversion from and to tuples of the same size.
3
4
/// No more recursion. Can be used within any `Recursive<NoneMore, YourValue>`
5
/// type.
6
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
7
pub struct NoneMore;
8
9
/// A recursive type-level linked list of `Value` entries.
10
/// Mainly used to represent an arbitrary number of channels.
11
/// The recursive architecture removes the need to implement traits for many
12
/// different tuples.
13
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
14
pub struct Recursive<Inner, Value> {
15
    /// The remaining values of this linked list,
16
    /// probably either `NoneMore` or another instance of the same
17
    /// `Recursive<Inner - 1, Value>`.
18
    pub inner: Inner,
19
20
    /// The next item in this linked list.
21
    pub value: Value,
22
}
23
24
impl<Inner, Value> Recursive<Inner, Value> {
25
    /// Create a new recursive type. Equivalent to the manual constructor, but
26
    /// less verbose.
27
0
    pub fn new(inner: Inner, value: Value) -> Self {
28
0
        Self {
29
0
            inner,
30
0
            value,
31
0
        }
32
0
    }
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::read::specific_channels::SampleReader<f32>>, exr::image::read::specific_channels::SampleReader<f32>>, exr::image::read::specific_channels::SampleReader<f32>>, exr::image::read::specific_channels::OptionalSampleReader<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::meta::attribute::ChannelDescription>, exr::meta::attribute::ChannelDescription>, exr::meta::attribute::ChannelDescription>, core::option::Option<exr::meta::attribute::ChannelDescription>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::read::specific_channels::SampleReader<f32>>, exr::image::read::specific_channels::SampleReader<f32>>, exr::image::read::specific_channels::SampleReader<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::meta::attribute::ChannelDescription>, exr::meta::attribute::ChannelDescription>, exr::meta::attribute::ChannelDescription>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::read::specific_channels::SampleReader<f32>>, exr::image::read::specific_channels::SampleReader<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::meta::attribute::ChannelDescription>, exr::meta::attribute::ChannelDescription>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::read::specific_channels::SampleReader<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::meta::attribute::ChannelDescription>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<_, _>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>, exr::image::write::channels::SampleWriter<f32>>>::new
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::image::write::channels::SampleWriter<f32>>>::new
33
}
34
35
/// Convert this recursive type into a tuple.
36
/// This is nice as it will require less typing for the same type.
37
/// A type might or might not be convertible to the specified `Tuple` type.
38
pub trait IntoTuple<Tuple> {
39
    /// Convert this recursive type to a nice tuple.
40
    fn into_tuple(self) -> Tuple;
41
}
42
43
/// Convert this recursive type into a tuple.
44
/// This is nice as it will require less typing for the same type.
45
/// A type will be converted to the specified `Self::NonRecursive` type.
46
pub trait IntoNonRecursive {
47
    /// The resulting tuple type.
48
    type NonRecursive;
49
50
    /// Convert this recursive type to a nice tuple.
51
    fn into_non_recursive(self) -> Self::NonRecursive;
52
}
53
54
/// Create a recursive type from this tuple.
55
pub trait IntoRecursive {
56
    /// The recursive type resulting from this tuple.
57
    type Recursive;
58
59
    /// Create a recursive type from this tuple.
60
    fn into_recursive(self) -> Self::Recursive;
61
}
62
63
impl IntoRecursive for NoneMore {
64
    type Recursive = Self;
65
66
0
    fn into_recursive(self) -> Self::Recursive {
67
0
        self
68
0
    }
69
}
70
71
impl<Inner: IntoRecursive, Value> IntoRecursive for Recursive<Inner, Value> {
72
    type Recursive = Recursive<Inner::Recursive, Value>;
73
74
0
    fn into_recursive(self) -> Self::Recursive {
75
0
        Recursive::new(self.inner.into_recursive(), self.value)
76
0
    }
77
}
78
79
// Automatically implement IntoTuple so we have to generate less code in the
80
// macros
81
impl<I: IntoNonRecursive> IntoTuple<I::NonRecursive> for I {
82
0
    fn into_tuple(self) -> <I as IntoNonRecursive>::NonRecursive {
83
0
        self.into_non_recursive()
84
0
    }
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, f32>, f32>, f32>, f32> as exr::image::recursive::IntoTuple<(f32, f32, f32, f32)>>::into_tuple
Unexecuted instantiation: <_ as exr::image::recursive::IntoTuple<<_ as exr::image::recursive::IntoNonRecursive>::NonRecursive>>::into_tuple
85
}
86
87
// Implement traits for the empty tuple, the macro doesn't handle that
88
impl IntoRecursive for () {
89
    type Recursive = NoneMore;
90
91
0
    fn into_recursive(self) -> Self::Recursive {
92
0
        NoneMore
93
0
    }
94
}
95
96
impl IntoNonRecursive for NoneMore {
97
    type NonRecursive = ();
98
99
0
    fn into_non_recursive(self) -> Self::NonRecursive {
100
0
        ()
101
0
    }
102
}
103
104
/// Generates the recursive type corresponding to this tuple:
105
/// ```nocheck
106
/// gen_recursive_type!(A, B, C)
107
/// => Recursive<Recursive<Recursive<NoneMore, A>, B>, C>
108
/// ```
109
macro_rules! gen_recursive_type {
110
    () => { NoneMore };
111
    ($last:ident $(,$not_last:ident)*) => {
112
        Recursive<gen_recursive_type!($($not_last),*), $last>
113
    };
114
}
115
116
/// Generates the recursive value corresponding to the given indices:
117
/// ```nocheck
118
/// gen_recursive_value(self; 1, 0)
119
/// => Recursive { inner: Recursive {  inner: NoneMore, value: self.0 }, value: self.1 }
120
/// ```
121
macro_rules! gen_recursive_value {
122
    ($self:ident;) => { NoneMore };
123
    ($self:ident; $last:tt $(,$not_last:tt)*) => {
124
        Recursive { inner: gen_recursive_value!($self; $($not_last),*), value: $self.$last }
125
    };
126
}
127
128
/// Generates the into_tuple value corresponding to the given type names:
129
/// ```nocheck
130
/// gen_tuple_value(self; A, B, C)
131
/// => (self.inner.inner.value, self.inner.value, self.value)
132
/// ```
133
macro_rules! gen_tuple_value {
134
    ($self:ident; $($all:ident),* ) => {
135
        gen_tuple_value!(@ $self; (); $($all),*  )
136
    };
137
138
    (@ $self:ident; ($($state:expr),*);) => { ($($state .value,)*) };
139
    (@ $self:ident; ($($state:expr),*); $last:ident $(,$not_last:ident)* ) => {
140
        gen_tuple_value!(@ $self; ($($state .inner,)* $self); $($not_last),*  )
141
    };
142
}
143
144
/// Generate the trait implementations given a sequence of type names in both
145
/// directions and the indices backwards: ```nocheck
146
/// generate_single(A, B, C; C, B, A; 2, 1, 0)
147
/// ```
148
macro_rules! generate_single {
149
    ( $($name_fwd:ident),* ; $($name_back:ident),* ; $($index_back:tt),*) => {
150
        impl<$($name_fwd),*> IntoNonRecursive for gen_recursive_type!($($name_back),*) {
151
            type NonRecursive = ($($name_fwd,)*);
152
0
            fn into_non_recursive(self) -> Self::NonRecursive {
153
0
                gen_tuple_value!(self; $($name_fwd),*)
154
0
            }
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, exr::meta::attribute::ChannelDescription>, exr::meta::attribute::ChannelDescription>, exr::meta::attribute::ChannelDescription>, core::option::Option<exr::meta::attribute::ChannelDescription>> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, f32>, f32>, f32>, f32> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
Unexecuted instantiation: <exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::Recursive<exr::image::recursive::NoneMore, _>, _>, _>, _>, _>, _>, _>, _>, _> as exr::image::recursive::IntoNonRecursive>::into_non_recursive
155
        }
156
157
        impl<$($name_fwd),*> IntoRecursive for ($($name_fwd,)*) {
158
            type Recursive = gen_recursive_type!($($name_back),*);
159
0
            fn into_recursive(self) -> Self::Recursive {
160
0
                gen_recursive_value!(self; $($index_back),*)
161
0
            }
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_,) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(f32, f32, f32) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(f32, f32, f32, f32) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription, exr::meta::attribute::ChannelDescription) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(f32, f32, f32) as exr::image::recursive::IntoRecursive>::into_recursive
Unexecuted instantiation: <(f32, f32, f32, f32) as exr::image::recursive::IntoRecursive>::into_recursive
162
        }
163
    };
164
}
165
166
generate_single!(A; A; 0);
167
generate_single!(A,B; B,A; 1,0);
168
generate_single!(A,B,C; C,B,A; 2,1,0);
169
generate_single!(A,B,C,D; D,C,B,A; 3,2,1,0);
170
generate_single!(A,B,C,D,E; E,D,C,B,A; 4,3,2,1,0);
171
generate_single!(A,B,C,D,E,F; F,E,D,C,B,A; 5,4,3,2,1,0);
172
generate_single!(A,B,C,D,E,F,G; G,F,E,D,C,B,A; 6,5,4,3,2,1,0);
173
generate_single!(A,B,C,D,E,F,G,H; H,G,F,E,D,C,B,A; 7,6,5,4,3,2,1,0);
174
generate_single!(A,B,C,D,E,F,G,H,I; I,H,G,F,E,D,C,B,A; 8,7,6,5,4,3,2,1,0);
175
generate_single!(A,B,C,D,E,F,G,H,I,J; J,I,H,G,F,E,D,C,B,A; 9,8,7,6,5,4,3,2,1,0);
176
generate_single!(A,B,C,D,E,F,G,H,I,J,K; K,J,I,H,G,F,E,D,C,B,A; 10,9,8,7,6,5,4,3,2,1,0);
177
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L; L,K,J,I,H,G,F,E,D,C,B,A; 11,10,9,8,7,6,5,4,3,2,1,0);
178
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M; M,L,K,J,I,H,G,F,E,D,C,B,A; 12,11,10,9,8,7,6,5,4,3,2,1,0);
179
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N; N,M,L,K,J,I,H,G,F,E,D,C,B,A; 13,12,11,10,9,8,7,6,5,4,3,2,1,0);
180
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O; O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
181
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P; P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
182
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q; Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
183
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R; R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
184
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S; S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
185
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T; T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
186
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U; U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
187
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V; V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
188
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W; W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
189
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X; X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
190
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y; Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
191
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z; Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
192
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1; A1,Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
193
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1; B1,A1,Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
194
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1; C1,B1,A1,Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
195
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1; D1,C1,B1,A1,Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
196
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1; E1,D1,C1,B1,A1,Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
197
generate_single!(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1,D1,E1,F1; F1,E1,D1,C1,B1,A1,Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A; 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);