diff options
author | 2023-04-27 15:36:45 -0700 | |
---|---|---|
committer | 2023-04-28 10:14:15 -0700 | |
commit | 47016a37dfe51ebc3cdf290d8afb34ceadb8edae (patch) | |
tree | 79dfb92903f27f2f743f4c3bcf49cf9956cab8cd /core | |
parent | c31ab8eee6a49a48b4e6ad92207b8ee0360a0eff (diff) | |
download | iced-47016a37dfe51ebc3cdf290d8afb34ceadb8edae.tar.gz iced-47016a37dfe51ebc3cdf290d8afb34ceadb8edae.tar.bz2 iced-47016a37dfe51ebc3cdf290d8afb34ceadb8edae.zip |
Do not require `Copy` for text `StyleSheet::Style`
For most widgets, `Style` only requires `Default`. A few require
`Clone`. Only this one requires `Copy`.
Some of the types in the default theme has a custom variant requiring
`Box<dyn Trait>`, or `Rc<dyn Trait>` to provide `Clone`, but this isn't
possible if `Copy` is required.
It would be good to also address the inconsistency of requiring `Clone`
in some places and not others.
This removes `style/src/text.rs` which is unused in this branch and thus
confusing. If there's a reason to keep it, that can be removed from the
change.
Diffstat (limited to 'core')
-rw-r--r-- | core/src/widget/text.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs index 485bb542..3193ba84 100644 --- a/core/src/widget/text.rs +++ b/core/src/widget/text.rs @@ -153,7 +153,7 @@ where &self.content, self.size, self.font, - theme.appearance(self.style), + theme.appearance(self.style.clone()), self.horizontal_alignment, self.vertical_alignment, ); @@ -233,7 +233,7 @@ where horizontal_alignment: self.horizontal_alignment, vertical_alignment: self.vertical_alignment, font: self.font, - style: self.style, + style: self.style.clone(), } } } @@ -261,7 +261,7 @@ where /// The style sheet of some text. pub trait StyleSheet { /// The supported style of the [`StyleSheet`]. - type Style: Default + Copy; + type Style: Default + Clone; /// Produces the [`Appearance`] of some text. fn appearance(&self, style: Self::Style) -> Appearance; |