user_theme.rs

 1use refineable::Refineable;
 2use serde::Deserialize;
 3
 4use crate::{Appearance, ThemeColors, ThemeColorsRefinement};
 5
 6#[derive(Deserialize)]
 7pub struct UserThemeFamily {
 8    pub name: String,
 9    pub author: String,
10    pub themes: Vec<UserTheme>,
11}
12
13#[derive(Deserialize)]
14pub struct UserTheme {
15    pub name: String,
16    pub appearance: Appearance,
17    pub styles: UserThemeStylesRefinement,
18}
19
20#[derive(Refineable, Clone)]
21#[refineable(deserialize)]
22pub struct UserThemeStyles {
23    #[refineable]
24    pub colors: ThemeColors,
25}