fix: derive PartialEq for Theme

This commit is contained in:
Ashley Wulber 2023-06-09 17:13:01 -04:00 committed by Ashley Wulber
parent 31d7c75098
commit 6699aa4756
5 changed files with 8 additions and 23 deletions

View file

@ -23,7 +23,7 @@ lazy_static! {
}
/// Palette type
#[derive(Clone, Debug, Deserialize, Serialize)]
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub enum CosmicPalette<C> {
/// Dark mode
Dark(CosmicPaletteInner<C>),
@ -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<C> {
/// name of the palette
pub name: String,

View file

@ -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<C> {
/// 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<C> {
/// The base color of the widget
pub base: C,

View file

@ -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<C> {
/// 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<C> PartialEq for Theme<C>
where
C: Clone + fmt::Debug + Default + Into<Srgba> + From<Srgba> + Serialize + DeserializeOwned,
{
fn eq(&self, other: &Self) -> bool {
self.name == other.name
}
}
impl<C> Eq for Theme<C> where
C: Clone + fmt::Debug + Default + Into<Srgba> + From<Srgba> + Serialize + DeserializeOwned
{
}
impl<C> Theme<C> {
/// version of the theme
pub fn version() -> u32 {

View file

@ -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,
}

View file

@ -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<CosmicTheme>),
}
#[derive(Debug, Clone, Eq, PartialEq, Default)]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct Theme {
pub theme_type: ThemeType,
pub layer: cosmic_theme::Layer,