widget_forge/widget/
widget_set.rs

1use crate::prelude::*;
2
3pub trait WidgetSet<D> {
4    fn insert(self, scene: &mut Scene<D>);
5}
6
7macro_rules! widget_set {
8    ($($name:tt $num:tt)+) => {
9        impl<Z: 'static, $($name: Widget<Z> + 'static),+> WidgetSet<Z> for ($($name,)+) {
10            fn insert(self, scene: &mut Scene<Z>) {
11                $(scene.insert_widget(self.$num);)+
12            }
13        }
14    }
15}
16
17widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 K 10 L 11 M 12 }
18widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 K 10 L 11 }
19widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 K 10 }
20widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 }
21widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8  }
22widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7  }
23widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 G 6 }
24widget_set! { A 0 B 1 C 2 D 3 E 4 F 5 }
25widget_set! { A 0 B 1 C 2 D 3 E 4 }
26widget_set! { A 0 B 1 C 2 D 3 }
27widget_set! { A 0 B 1 C 2 }
28widget_set! { A 0 B 1 }
29widget_set! { A 0 }