diff --git a/src/widget/color_picker/mod.rs b/src/widget/color_picker/mod.rs index 30c8bcf8..f3366b3b 100644 --- a/src/widget/color_picker/mod.rs +++ b/src/widget/color_picker/mod.rs @@ -122,7 +122,7 @@ impl ColorPickerModel { &self, f: T, icon_portion: Option, - ) -> crate::widget::Button<'a, Message, crate::Theme, crate::Renderer> { + ) -> crate::widget::Button<'a, Message, crate::Theme, crate::Renderer> where Message: 'static { color_button( Some(f(ColorPickerUpdate::ToggleColorPicker)), self.applied_color, diff --git a/src/widget/segmented_button/model/builder.rs b/src/widget/segmented_button/model/builder.rs index 2554b792..00085c8a 100644 --- a/src/widget/segmented_button/model/builder.rs +++ b/src/widget/segmented_button/model/builder.rs @@ -8,9 +8,15 @@ use crate::widget::icon::Icon; use std::borrow::Cow; /// A builder for a [`Model`]. -#[derive(Default)] pub struct ModelBuilder(Model); +//TODO: Default derive ends up requiring Message to implement Default +impl Default for ModelBuilder { + fn default() -> Self { + Self(Model::default()) + } +} + /// Constructs a new item for the [`ModelBuilder`]. pub struct BuilderEntity { model: ModelBuilder, diff --git a/src/widget/segmented_button/model/mod.rs b/src/widget/segmented_button/model/mod.rs index 9dde8c10..b743e76b 100644 --- a/src/widget/segmented_button/model/mod.rs +++ b/src/widget/segmented_button/model/mod.rs @@ -53,7 +53,6 @@ pub type MultiSelectEntityMut<'a, Message> = EntityMut<'a, MultiSelect, Message> pub(super) struct Storage(HashMap>>); /// The model held by the application, containing the unique IDs and data of each inserted item. -#[derive(Default)] pub struct Model { /// The content used for drawing segmented items. pub(super) items: SlotMap, @@ -80,6 +79,22 @@ pub struct Model { pub(super) storage: Storage, } +//TODO: Default derive ends up requiring Message to implement Default +impl Default for Model { + fn default() -> Self { + Self { + items: SlotMap::default(), + elements: SecondaryMap::default(), + icons: SecondaryMap::default(), + indents: SecondaryMap::default(), + text: SecondaryMap::default(), + order: VecDeque::default(), + selection: SelectionMode::default(), + storage: Storage::default(), + } + } +} + impl Model where Self: Selectable,