pub type NativeWidgets = (NativeButton, (NativeCheckBox, (NativeSlider, (NativeProgressIndicator, (NativeSpinBox, (NativeGroupBox, (NativeLineEdit, (NativeScrollView, (NativeStandardListViewItem, (NativeTableHeaderSection, (NativeComboBox, (NativeComboBoxPopup, (NativeTabWidget, (NativeTab, ()))))))))))))));
Expand description

NativeWidgets and NativeGlobals are “type list” containing all the native widgets and global types.

It is built as a tuple (Type, Tail) where Tail is also a “type list”. a () is the end.

So it can be used like this to do something for all types:

trait DoSomething {
    fn do_something(/*...*/) { /*...*/
    }
}
impl DoSomething for () {}
impl<T: i_slint_core::rtti::BuiltinItem, Next: DoSomething> DoSomething for (T, Next) {
    fn do_something(/*...*/) {
         /*...*/
         Next::do_something(/*...*/);
    }
}
i_slint_backend_qt::NativeWidgets::do_something(/*...*/)