libcosmic/src/widget
Michael Aaron Murphy 8cf372c9b9
perf: inline public getters/setters, and use non-generic inner functions
To reduce compile-times and avoid some overhead to binary size, this will modify some of our
generic functions to use non-generic inner functions where possible. The inner functions are
marked carefully with `#[inline(never)]` to prevent being inlined by LLVM at their callsites

While looking for generic functions to optimize, I have also taken the opportunity to annotate
public non-generic getters and setters with `#[inline]` to ensure that LLVM will inline them
across crate boundaries. By default, only generic functions are automatically inlined, and
only when enabling fat LTO are constant functions reliably inlined across crate boundaries.
2025-03-21 13:31:34 +01:00
..
button perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
card libcosmic updates 2024-10-18 14:04:39 -04:00
color_picker feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
context_drawer perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
dropdown refactor: track virtual offset in the layout 2025-03-21 03:45:30 +01:00
flex_row perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
grid perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
icon perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
list perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
menu feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
rectangle_tracker perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
segmented_button perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
settings perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
text_input improv(text_input): optimize, fix, and improve the text inputs 2025-03-21 13:21:57 +01:00
toaster perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
wayland refactor: track virtual offset in the layout 2025-03-21 03:45:30 +01:00
about.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
aspect_ratio.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
autosize.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
calendar.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
common.rs improv(widget): share object-select svg handle between widgets using it 2024-02-26 19:17:49 +01:00
context_menu.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
dialog.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
dnd_destination.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
dnd_source.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
frames.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
header_bar.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
id_container.rs refactor: track virtual offset in the layout 2025-03-21 03:45:30 +01:00
layer_container.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
menu.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
mod.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
nav_bar.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
nav_bar_toggle.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
popover.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
radio.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
responsive_container.rs refactor: track virtual offset in the layout 2025-03-21 03:45:30 +01:00
responsive_menu_bar.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
scrollable.rs improv: add window border 2024-11-05 10:02:19 +01:00
segmented_control.rs feat: configurable fonts 2024-10-05 01:47:37 +02:00
spin_button.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
tab_bar.rs feat: configurable fonts 2024-10-05 01:47:37 +02:00
text.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
toggler.rs fix(toggler): remove extra padding 2024-12-02 17:43:19 +01:00
warning.rs improv: add window border 2024-11-05 10:02:19 +01:00
wrapper.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00