/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); |