use std::sync::Arc; use iced_material::Theme; pub fn iced_theme_from_str(theme_name: &str) -> Option { match theme_name { "Light" => Some(iced::Theme::Light), "Dark" => Some(iced::Theme::Dark), "Dracula" => Some(iced::Theme::Dracula), "Nord" => Some(iced::Theme::Nord), "Solarized Light" => Some(iced::Theme::SolarizedLight), "Solarized Dark" => Some(iced::Theme::SolarizedDark), "Gruvbox Light" => Some(iced::Theme::GruvboxLight), "Gruvbox Dark" => Some(iced::Theme::GruvboxDark), "Catppuccin Latte" => Some(iced::Theme::CatppuccinLatte), "Catppuccin Frappé" => Some(iced::Theme::CatppuccinFrappe), "Catppuccin Macchiato" => Some(iced::Theme::CatppuccinMacchiato), "Catppuccin Mocha" => Some(iced::Theme::CatppuccinMocha), "Tokyo Night" => Some(iced::Theme::TokyoNight), "Tokyo Night Storm" => Some(iced::Theme::TokyoNightStorm), "Tokyo Night Light" => Some(iced::Theme::TokyoNightLight), "Kanagawa Wave" => Some(iced::Theme::KanagawaWave), "Kanagawa Dragon" => Some(iced::Theme::KanagawaDragon), "Kanagawa Lotus" => Some(iced::Theme::KanagawaLotus), "Moonfly" => Some(iced::Theme::Moonfly), "Nightfly" => Some(iced::Theme::Nightfly), "Oxocarbon" => Some(iced::Theme::Oxocarbon), "Ferra" => Some(iced::Theme::Ferra), _ => None, } } #[derive(Debug, Clone)] pub struct Appearance { pub selected: Theme, pub all: Arc<[Theme]>, } impl Default for Appearance { fn default() -> Self { Self { selected: Theme::Dark, all: Theme::ALL.into(), } } }