1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#![allow(unused_attributes)]
#![rustfmt::skip]

use crate::widget_sequence::FlexWidget;
use crate::widget_sequence::WidgetSequence;

pub struct WidgetTuple<
    WS0: WidgetSequence,
    WS1: WidgetSequence,
    WS2: WidgetSequence,
    WS3: WidgetSequence,
    WS4: WidgetSequence,
    WS5: WidgetSequence,
    WS6: WidgetSequence,
    WS7: WidgetSequence,
    WS8: WidgetSequence,
    WS9: WidgetSequence,
    WS10: WidgetSequence,
    WS11: WidgetSequence,
>(
    pub WS0,
    pub WS1,
    pub WS2,
    pub WS3,
    pub WS4,
    pub WS5,
    pub WS6,
    pub WS7,
    pub WS8,
    pub WS9,
    pub WS10,
    pub WS11,
);

impl<
    WS0: WidgetSequence,
    WS1: WidgetSequence,
    WS2: WidgetSequence,
    WS3: WidgetSequence,
    WS4: WidgetSequence,
    WS5: WidgetSequence,
    WS6: WidgetSequence,
    WS7: WidgetSequence,
    WS8: WidgetSequence,
    WS9: WidgetSequence,
    WS10: WidgetSequence,
    WS11: WidgetSequence,
>
    WidgetSequence for WidgetTuple<
        WS0,
        WS1,
        WS2,
        WS3,
        WS4,
        WS5,
        WS6,
        WS7,
        WS8,
        WS9,
        WS10,
        WS11,
    >
{
    fn widgets(&mut self) -> Vec<&mut dyn FlexWidget> {
        let mut all_widgets = Vec::new();
        all_widgets.append(&mut self.0.widgets());
        all_widgets.append(&mut self.1.widgets());
        all_widgets.append(&mut self.2.widgets());
        all_widgets.append(&mut self.3.widgets());
        all_widgets.append(&mut self.4.widgets());
        all_widgets.append(&mut self.5.widgets());
        all_widgets.append(&mut self.6.widgets());
        all_widgets.append(&mut self.7.widgets());
        all_widgets.append(&mut self.8.widgets());
        all_widgets.append(&mut self.9.widgets());
        all_widgets.append(&mut self.10.widgets());
        all_widgets.append(&mut self.11.widgets());
        all_widgets
    }
}