Skip to main content

score_set/
gen_score_set32.rs

1// @generated by xtask. Do not edit by hand.
2// ---------------------------------------------------------------------------
3// Per-arity `ScoreSetTrait32` impls + `score_set!` macro.
4//
5// The trait and `Scored32` struct live in `src/metric_f32.rs`.
6// Arity 1 is hand-written (macro_rules cannot reliably produce 1‑tuples).
7// Arities 2–64 use the `impl_score_set32!` helper macro,
8// feature-gated behind `fixed-tuple-N`.  Default feature: `level-8`.
9//
10// Run `cargo run -p xtask -- gen --max <N>` to regenerate.
11// ---------------------------------------------------------------------------
12
13/// Internal helper: implement `ScoreSetTrait32<C>` for a tuple of arity 2+.
14macro_rules! impl_score_set32 {
15    ($($idx:tt $F:ident),+) => {
16        impl<C, $($F: Fn(&C) -> f32),+> crate::ScoreSetTrait32<C>
17            for ($(crate::Metric32<C, $F>,)+)
18        {
19            fn weighted_sum(&self, weights: &[f32], ctx: &C) -> f32 {
20                0.0_f32 $(+ self.$idx.eval(ctx).map(|w| w.into_inner()).unwrap_or(0.0) * weights[$idx])+
21            }
22            fn collect_breakdown(
23                &self,
24                weights: &[f32],
25                ctx: &C,
26            ) -> alloc::vec::Vec<crate::Breakdown32> {
27                alloc::vec![
28                    $(self.$idx.make_breakdown(weights[$idx], ctx),)+
29                ]
30            }
31        }
32    };
33}
34
35// ---- arity 1 (hand-written: macro_rules cannot reliably produce 1‑tuples) ----
36#[cfg(feature = "fixed-tuple-1")]
37impl<C, F0: Fn(&C) -> f32> crate::ScoreSetTrait32<C> for (crate::Metric32<C, F0>,) {
38    fn weighted_sum(&self, weights: &[f32], ctx: &C) -> f32 {
39        self.0.eval(ctx).map(|w| w.into_inner()).unwrap_or(0.0) * weights[0]
40    }
41    fn collect_breakdown(&self, weights: &[f32], ctx: &C) -> alloc::vec::Vec<crate::Breakdown32> {
42        alloc::vec![self.0.make_breakdown(weights[0], ctx)]
43    }
44}
45
46// ---- arity 2 ----
47#[cfg(feature = "fixed-tuple-2")]
48impl_score_set32!(0 F0, 1 F1);
49
50// ---- arity 3 ----
51#[cfg(feature = "fixed-tuple-3")]
52impl_score_set32!(0 F0, 1 F1, 2 F2);
53
54// ---- arity 4 ----
55#[cfg(feature = "fixed-tuple-4")]
56impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3);
57
58// ---- arity 5 ----
59#[cfg(feature = "fixed-tuple-5")]
60impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4);
61
62// ---- arity 6 ----
63#[cfg(feature = "fixed-tuple-6")]
64impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5);
65
66// ---- arity 7 ----
67#[cfg(feature = "fixed-tuple-7")]
68impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6);
69
70// ---- arity 8 ----
71#[cfg(feature = "fixed-tuple-8")]
72impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7);
73
74// ---- arity 9 ----
75#[cfg(feature = "fixed-tuple-9")]
76impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8);
77
78// ---- arity 10 ----
79#[cfg(feature = "fixed-tuple-10")]
80impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9);
81
82// ---- arity 11 ----
83#[cfg(feature = "fixed-tuple-11")]
84impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10);
85
86// ---- arity 12 ----
87#[cfg(feature = "fixed-tuple-12")]
88impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11);
89
90// ---- arity 13 ----
91#[cfg(feature = "fixed-tuple-13")]
92impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12);
93
94// ---- arity 14 ----
95#[cfg(feature = "fixed-tuple-14")]
96impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13);
97
98// ---- arity 15 ----
99#[cfg(feature = "fixed-tuple-15")]
100impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14);
101
102// ---- arity 16 ----
103#[cfg(feature = "fixed-tuple-16")]
104impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15);
105
106// ---- arity 17 ----
107#[cfg(feature = "fixed-tuple-17")]
108impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16);
109
110// ---- arity 18 ----
111#[cfg(feature = "fixed-tuple-18")]
112impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17);
113
114// ---- arity 19 ----
115#[cfg(feature = "fixed-tuple-19")]
116impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18);
117
118// ---- arity 20 ----
119#[cfg(feature = "fixed-tuple-20")]
120impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19);
121
122// ---- arity 21 ----
123#[cfg(feature = "fixed-tuple-21")]
124impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20);
125
126// ---- arity 22 ----
127#[cfg(feature = "fixed-tuple-22")]
128impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21);
129
130// ---- arity 23 ----
131#[cfg(feature = "fixed-tuple-23")]
132impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22);
133
134// ---- arity 24 ----
135#[cfg(feature = "fixed-tuple-24")]
136impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23);
137
138// ---- arity 25 ----
139#[cfg(feature = "fixed-tuple-25")]
140impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24);
141
142// ---- arity 26 ----
143#[cfg(feature = "fixed-tuple-26")]
144impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25);
145
146// ---- arity 27 ----
147#[cfg(feature = "fixed-tuple-27")]
148impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26);
149
150// ---- arity 28 ----
151#[cfg(feature = "fixed-tuple-28")]
152impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27);
153
154// ---- arity 29 ----
155#[cfg(feature = "fixed-tuple-29")]
156impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28);
157
158// ---- arity 30 ----
159#[cfg(feature = "fixed-tuple-30")]
160impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29);
161
162// ---- arity 31 ----
163#[cfg(feature = "fixed-tuple-31")]
164impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30);
165
166// ---- arity 32 ----
167#[cfg(feature = "fixed-tuple-32")]
168impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31);
169
170// ---- arity 33 ----
171#[cfg(feature = "fixed-tuple-33")]
172impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32);
173
174// ---- arity 34 ----
175#[cfg(feature = "fixed-tuple-34")]
176impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33);
177
178// ---- arity 35 ----
179#[cfg(feature = "fixed-tuple-35")]
180impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34);
181
182// ---- arity 36 ----
183#[cfg(feature = "fixed-tuple-36")]
184impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35);
185
186// ---- arity 37 ----
187#[cfg(feature = "fixed-tuple-37")]
188impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36);
189
190// ---- arity 38 ----
191#[cfg(feature = "fixed-tuple-38")]
192impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37);
193
194// ---- arity 39 ----
195#[cfg(feature = "fixed-tuple-39")]
196impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38);
197
198// ---- arity 40 ----
199#[cfg(feature = "fixed-tuple-40")]
200impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39);
201
202// ---- arity 41 ----
203#[cfg(feature = "fixed-tuple-41")]
204impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40);
205
206// ---- arity 42 ----
207#[cfg(feature = "fixed-tuple-42")]
208impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41);
209
210// ---- arity 43 ----
211#[cfg(feature = "fixed-tuple-43")]
212impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42);
213
214// ---- arity 44 ----
215#[cfg(feature = "fixed-tuple-44")]
216impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43);
217
218// ---- arity 45 ----
219#[cfg(feature = "fixed-tuple-45")]
220impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44);
221
222// ---- arity 46 ----
223#[cfg(feature = "fixed-tuple-46")]
224impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45);
225
226// ---- arity 47 ----
227#[cfg(feature = "fixed-tuple-47")]
228impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46);
229
230// ---- arity 48 ----
231#[cfg(feature = "fixed-tuple-48")]
232impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47);
233
234// ---- arity 49 ----
235#[cfg(feature = "fixed-tuple-49")]
236impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48);
237
238// ---- arity 50 ----
239#[cfg(feature = "fixed-tuple-50")]
240impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49);
241
242// ---- arity 51 ----
243#[cfg(feature = "fixed-tuple-51")]
244impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50);
245
246// ---- arity 52 ----
247#[cfg(feature = "fixed-tuple-52")]
248impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51);
249
250// ---- arity 53 ----
251#[cfg(feature = "fixed-tuple-53")]
252impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52);
253
254// ---- arity 54 ----
255#[cfg(feature = "fixed-tuple-54")]
256impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53);
257
258// ---- arity 55 ----
259#[cfg(feature = "fixed-tuple-55")]
260impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54);
261
262// ---- arity 56 ----
263#[cfg(feature = "fixed-tuple-56")]
264impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55);
265
266// ---- arity 57 ----
267#[cfg(feature = "fixed-tuple-57")]
268impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56);
269
270// ---- arity 58 ----
271#[cfg(feature = "fixed-tuple-58")]
272impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56, 57 F57);
273
274// ---- arity 59 ----
275#[cfg(feature = "fixed-tuple-59")]
276impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56, 57 F57, 58 F58);
277
278// ---- arity 60 ----
279#[cfg(feature = "fixed-tuple-60")]
280impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56, 57 F57, 58 F58, 59 F59);
281
282// ---- arity 61 ----
283#[cfg(feature = "fixed-tuple-61")]
284impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56, 57 F57, 58 F58, 59 F59, 60 F60);
285
286// ---- arity 62 ----
287#[cfg(feature = "fixed-tuple-62")]
288impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56, 57 F57, 58 F58, 59 F59, 60 F60, 61 F61);
289
290// ---- arity 63 ----
291#[cfg(feature = "fixed-tuple-63")]
292impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56, 57 F57, 58 F58, 59 F59, 60 F60, 61 F61, 62 F62);
293
294// ---- arity 64 ----
295#[cfg(feature = "fixed-tuple-64")]
296impl_score_set32!(0 F0, 1 F1, 2 F2, 3 F3, 4 F4, 5 F5, 6 F6, 7 F7, 8 F8, 9 F9, 10 F10, 11 F11, 12 F12, 13 F13, 14 F14, 15 F15, 16 F16, 17 F17, 18 F18, 19 F19, 20 F20, 21 F21, 22 F22, 23 F23, 24 F24, 25 F25, 26 F26, 27 F27, 28 F28, 29 F29, 30 F30, 31 F31, 32 F32, 33 F33, 34 F34, 35 F35, 36 F36, 37 F37, 38 F38, 39 F39, 40 F40, 41 F41, 42 F42, 43 F43, 44 F44, 45 F45, 46 F46, 47 F47, 48 F48, 49 F49, 50 F50, 51 F51, 52 F52, 53 F53, 54 F54, 55 F55, 56 F56, 57 F57, 58 F58, 59 F59, 60 F60, 61 F61, 62 F62, 63 F63);
297
298/// Combine heterogeneous metrics into a zero-vtable, zero-heap-allocation
299/// weighted scorer.
300///
301/// Each metric can have a different closure type.
302///
303/// # Errors
304/// Returns `Err` if any weight is not strictly positive (`> 0` and finite).
305#[macro_export]
306macro_rules! score_set32 {
307    ($($w:expr => $m:expr),+ $(,)?) => {{
308        let raw = [$($w as f32),+];
309        $crate::Scored32::new(($($m,)+), &raw)
310    }};
311}