1pub trait PopBack {
2 type Output;
3 fn pop_back(self) -> Self::Output;
4}
5
6impl<T1> PopBack for (T1,) {
7 type Output = ();
8 fn pop_back(self) -> Self::Output {
9 ()
10 }
11}
12
13impl<T1, T2> PopBack for (T1, T2) {
14 type Output = (T1,);
15 fn pop_back(self) -> Self::Output {
16 (self.0,)
17 }
18}
19
20impl<T1, T2, T3> PopBack for (T1, T2, T3) {
21 type Output = (T1, T2);
22 fn pop_back(self) -> Self::Output {
23 (self.0, self.1)
24 }
25}
26
27impl<T1, T2, T3, T4> PopBack for (T1, T2, T3, T4) {
28 type Output = (T1, T2, T3);
29 fn pop_back(self) -> Self::Output {
30 (self.0, self.1, self.2)
31 }
32}
33
34impl<T1, T2, T3, T4, T5> PopBack for (T1, T2, T3, T4, T5) {
35 type Output = (T1, T2, T3, T4);
36 fn pop_back(self) -> Self::Output {
37 (self.0, self.1, self.2, self.3)
38 }
39}
40
41impl<T1, T2, T3, T4, T5, T6> PopBack for (T1, T2, T3, T4, T5, T6) {
42 type Output = (T1, T2, T3, T4, T5);
43 fn pop_back(self) -> Self::Output {
44 (self.0, self.1, self.2, self.3, self.4)
45 }
46}
47
48impl<T1, T2, T3, T4, T5, T6, T7> PopBack for (T1, T2, T3, T4, T5, T6, T7) {
49 type Output = (T1, T2, T3, T4, T5, T6);
50 fn pop_back(self) -> Self::Output {
51 (self.0, self.1, self.2, self.3, self.4, self.5)
52 }
53}
54
55impl<T1, T2, T3, T4, T5, T6, T7, T8> PopBack for (T1, T2, T3, T4, T5, T6, T7, T8) {
56 type Output = (T1, T2, T3, T4, T5, T6, T7);
57 fn pop_back(self) -> Self::Output {
58 (self.0, self.1, self.2, self.3, self.4, self.5, self.6)
59 }
60}
61
62impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> PopBack for (T1, T2, T3, T4, T5, T6, T7, T8, T9) {
63 type Output = (T1, T2, T3, T4, T5, T6, T7, T8);
64 fn pop_back(self) -> Self::Output {
65 (
66 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7,
67 )
68 }
69}
70
71impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> PopBack
72 for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
73{
74 type Output = (T1, T2, T3, T4, T5, T6, T7, T8, T9);
75 fn pop_back(self) -> Self::Output {
76 (
77 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7, self.8,
78 )
79 }
80}
81
82impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> PopBack
83 for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
84{
85 type Output = (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10);
86 fn pop_back(self) -> Self::Output {
87 (
88 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7, self.8, self.9,
89 )
90 }
91}
92
93impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> PopBack
94 for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
95{
96 type Output = (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11);
97 fn pop_back(self) -> Self::Output {
98 (
99 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7, self.8, self.9, self.10,
100 )
101 }
102}
103
104impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> PopBack
105 for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
106{
107 type Output = (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12);
108 fn pop_back(self) -> Self::Output {
109 (
110 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7, self.8, self.9,
111 self.10, self.11,
112 )
113 }
114}
115
116impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> PopBack
117 for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
118{
119 type Output = (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13);
120 fn pop_back(self) -> Self::Output {
121 (
122 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7, self.8, self.9,
123 self.10, self.11, self.12,
124 )
125 }
126}
127
128impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> PopBack
129 for (
130 T1,
131 T2,
132 T3,
133 T4,
134 T5,
135 T6,
136 T7,
137 T8,
138 T9,
139 T10,
140 T11,
141 T12,
142 T13,
143 T14,
144 T15,
145 )
146{
147 type Output = (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14);
148 fn pop_back(self) -> Self::Output {
149 (
150 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7, self.8, self.9,
151 self.10, self.11, self.12, self.13,
152 )
153 }
154}
155
156impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> PopBack
157 for (
158 T1,
159 T2,
160 T3,
161 T4,
162 T5,
163 T6,
164 T7,
165 T8,
166 T9,
167 T10,
168 T11,
169 T12,
170 T13,
171 T14,
172 T15,
173 T16,
174 )
175{
176 type Output = (
177 T1,
178 T2,
179 T3,
180 T4,
181 T5,
182 T6,
183 T7,
184 T8,
185 T9,
186 T10,
187 T11,
188 T12,
189 T13,
190 T14,
191 T15,
192 );
193 fn pop_back(self) -> Self::Output {
194 (
195 self.0, self.1, self.2, self.3, self.4, self.5, self.6, self.7, self.8, self.9,
196 self.10, self.11, self.12, self.13, self.14,
197 )
198 }
199}