From 833538ee7f3a60a839304762dfc29b0881d19094 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 7 Mar 2024 20:11:32 +0100 Subject: Leverage `DefaultStyle` traits instead of `Default` --- src/application.rs | 16 +++++++--------- src/multi_window.rs | 12 ++++++------ src/sandbox.rs | 4 +++- 3 files changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/application.rs b/src/application.rs index 3247a97d..a7e4d8da 100644 --- a/src/application.rs +++ b/src/application.rs @@ -3,7 +3,7 @@ use crate::{Command, Element, Executor, Settings, Subscription}; use crate::shell::application; -pub use application::{default, Appearance, Style}; +pub use application::{default, Appearance, DefaultStyle}; /// An interactive cross-platform application. /// @@ -95,7 +95,7 @@ pub use application::{default, Appearance, Style}; /// ``` pub trait Application: Sized where - Style: Default, + Self::Theme: DefaultStyle, { /// The [`Executor`] that will run commands and subscriptions. /// @@ -153,11 +153,9 @@ where Self::Theme::default() } - /// Returns the current `Style` of the [`Theme`]. - /// - /// [`Theme`]: Self::Theme + /// Returns the current [`Appearance`] of the [`Application`]. fn style(&self, theme: &Self::Theme) -> Appearance { - Style::default().resolve(theme) + theme.default_style() } /// Returns the event [`Subscription`] for the current state of the @@ -221,12 +219,12 @@ where struct Instance(A) where A: Application, - application::Style: Default; + A::Theme: DefaultStyle; impl crate::runtime::Program for Instance where A: Application, - application::Style: Default, + A::Theme: DefaultStyle, { type Message = A::Message; type Theme = A::Theme; @@ -244,7 +242,7 @@ where impl application::Application for Instance where A: Application, - application::Style: Default, + A::Theme: DefaultStyle, { type Flags = A::Flags; diff --git a/src/multi_window.rs b/src/multi_window.rs index bd57a746..c4063563 100644 --- a/src/multi_window.rs +++ b/src/multi_window.rs @@ -2,7 +2,7 @@ use crate::window; use crate::{Command, Element, Executor, Settings, Subscription}; -pub use crate::application::{default, Appearance, Style}; +pub use crate::application::{Appearance, DefaultStyle}; /// An interactive cross-platform multi-window application. /// @@ -67,7 +67,7 @@ pub use crate::application::{default, Appearance, Style}; /// [`Sandbox`]: crate::Sandbox pub trait Application: Sized where - Style: Default, + Self::Theme: DefaultStyle, { /// The [`Executor`] that will run commands and subscriptions. /// @@ -133,7 +133,7 @@ where /// /// [`Theme`]: Self::Theme fn style(&self, theme: &Self::Theme) -> Appearance { - Style::default().resolve(theme) + Self::Theme::default_style(theme) } /// Returns the event [`Subscription`] for the current state of the @@ -198,12 +198,12 @@ where struct Instance(A) where A: Application, - Style: Default; + A::Theme: DefaultStyle; impl crate::runtime::multi_window::Program for Instance where A: Application, - Style: Default, + A::Theme: DefaultStyle, { type Message = A::Message; type Theme = A::Theme; @@ -224,7 +224,7 @@ where impl crate::shell::multi_window::Application for Instance where A: Application, - Style: Default, + A::Theme: DefaultStyle, { type Flags = A::Flags; diff --git a/src/sandbox.rs b/src/sandbox.rs index ab0e8d3d..568b673e 100644 --- a/src/sandbox.rs +++ b/src/sandbox.rs @@ -122,7 +122,9 @@ pub trait Sandbox { /// Returns the current [`application::Appearance`]. fn style(&self, theme: &Theme) -> application::Appearance { - crate::shell::application::default(theme) + use application::DefaultStyle; + + theme.default_style() } /// Returns the scale factor of the [`Sandbox`]. -- cgit