From 6699aa475646fd044b5233dc918e3b0e3604c8ed Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Fri, 9 Jun 2023 17:13:01 -0400 Subject: [PATCH] fix: derive PartialEq for Theme --- cosmic-theme/src/model/cosmic_palette.rs | 4 ++-- cosmic-theme/src/model/derivation.rs | 4 ++-- cosmic-theme/src/model/theme.rs | 17 +---------------- cosmic-theme/src/util.rs | 2 +- src/theme/mod.rs | 4 ++-- 5 files changed, 8 insertions(+), 23 deletions(-) diff --git a/cosmic-theme/src/model/cosmic_palette.rs b/cosmic-theme/src/model/cosmic_palette.rs index 622627c1..45a95561 100644 --- a/cosmic-theme/src/model/cosmic_palette.rs +++ b/cosmic-theme/src/model/cosmic_palette.rs @@ -23,7 +23,7 @@ lazy_static! { } /// Palette type -#[derive(Clone, Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum CosmicPalette { /// Dark mode Dark(CosmicPaletteInner), @@ -80,7 +80,7 @@ where } /// The palette for Cosmic Theme, from which all color properties are derived -#[derive(Clone, Debug, Default, Deserialize, Serialize)] +#[derive(Clone, Debug, Default, Deserialize, Serialize, PartialEq, Eq)] pub struct CosmicPaletteInner { /// name of the palette pub name: String, diff --git a/cosmic-theme/src/model/derivation.rs b/cosmic-theme/src/model/derivation.rs index da5f1ec2..c030dd34 100644 --- a/cosmic-theme/src/model/derivation.rs +++ b/cosmic-theme/src/model/derivation.rs @@ -5,7 +5,7 @@ use std::fmt; use crate::{util::over, CosmicPalette}; /// Theme Container colors of a theme, can be a theme background container, primary container, or secondary container -#[derive(Clone, Debug, Default, Deserialize, Serialize)] +#[derive(Clone, Debug, Default, Deserialize, Serialize, PartialEq, Eq)] pub struct Container { /// the color of the container pub base: C, @@ -160,7 +160,7 @@ impl fmt::Display for ContainerType { } /// The colors for a widget of the Cosmic theme -#[derive(Clone, PartialEq, Debug, Default, Deserialize, Serialize)] +#[derive(Clone, PartialEq, Debug, Default, Deserialize, Serialize, Eq)] pub struct Component { /// The base color of the widget pub base: C, diff --git a/cosmic-theme/src/model/theme.rs b/cosmic-theme/src/model/theme.rs index f31b0cdd..51412998 100644 --- a/cosmic-theme/src/model/theme.rs +++ b/cosmic-theme/src/model/theme.rs @@ -27,7 +27,7 @@ pub enum Layer { } /// Cosmic Theme data structure with all colors and its name -#[derive(Clone, Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub struct Theme { /// name of the theme pub name: String, @@ -149,21 +149,6 @@ pub trait LayeredTheme { fn set_layer(&mut self, layer: Layer); } -// TODO better eq check -impl PartialEq for Theme -where - C: Clone + fmt::Debug + Default + Into + From + Serialize + DeserializeOwned, -{ - fn eq(&self, other: &Self) -> bool { - self.name == other.name - } -} - -impl Eq for Theme where - C: Clone + fmt::Debug + Default + Into + From + Serialize + DeserializeOwned -{ -} - impl Theme { /// version of the theme pub fn version() -> u32 { diff --git a/cosmic-theme/src/util.rs b/cosmic-theme/src/util.rs index afbf98c6..bb264c8e 100644 --- a/cosmic-theme/src/util.rs +++ b/cosmic-theme/src/util.rs @@ -3,7 +3,7 @@ use palette::Srgba; use serde::{Deserialize, Serialize}; /// utility wrapper for serializing and deserializing colors with arbitrary CSS -#[derive(Clone, Debug, Default, Deserialize, Serialize)] +#[derive(Clone, Debug, Default, Deserialize, Serialize, PartialEq)] pub struct CssColor { c: Color, } diff --git a/src/theme/mod.rs b/src/theme/mod.rs index 2fef40a7..bf1074b9 100644 --- a/src/theme/mod.rs +++ b/src/theme/mod.rs @@ -58,7 +58,7 @@ lazy_static::lazy_static! { }; } -#[derive(Debug, Clone, Eq, PartialEq, Default)] +#[derive(Debug, Clone, PartialEq, Default)] pub enum ThemeType { #[default] Dark, @@ -68,7 +68,7 @@ pub enum ThemeType { Custom(Arc), } -#[derive(Debug, Clone, Eq, PartialEq, Default)] +#[derive(Debug, Clone, PartialEq, Default)] pub struct Theme { pub theme_type: ThemeType, pub layer: cosmic_theme::Layer,