From b8547e926de412d78962801dbf1f344bbf944a25 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Wed, 1 Nov 2023 10:31:03 -0400 Subject: [PATCH] Remove blanket `From<&str>` impl for `Hsla` Since this is a fallible operation we don't want to have a blanket infallible conversion from any arbitrary `&str` to an `Hsla`. --- crates/gpui2/src/color.rs | 6 ------ crates/theme2/src/default_colors.rs | 18 +++++++++--------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/crates/gpui2/src/color.rs b/crates/gpui2/src/color.rs index 44b084e65f0245d2ff31d5c751158b8a18263872..db072594760f160a303020af20021e05d74db300 100644 --- a/crates/gpui2/src/color.rs +++ b/crates/gpui2/src/color.rs @@ -233,12 +233,6 @@ impl Hsla { } } -impl From<&str> for Hsla { - fn from(s: &str) -> Self { - Rgba::try_from(s).unwrap().into() - } -} - // impl From for Rgba { // fn from(value: Hsla) -> Self { // let h = value.h; diff --git a/crates/theme2/src/default_colors.rs b/crates/theme2/src/default_colors.rs index 904e275c845e4d4f4c45d2c8ce24e271cde4287c..8bb1111727a2b450cc3f8eccb1e17e61193e093a 100644 --- a/crates/theme2/src/default_colors.rs +++ b/crates/theme2/src/default_colors.rs @@ -4,6 +4,7 @@ use crate::{ colors::{GitStatusColors, PlayerColor, PlayerColors, StatusColors, SystemColors, ThemeColors}, scale::{ColorScaleSet, ColorScales}, syntax::SyntaxTheme, + ColorScaleStep, }; fn neutral() -> DefaultColorScaleSet { @@ -291,22 +292,21 @@ struct DefaultColorScaleSet { dark_alpha: [&'static str; 12], } -// See [ColorScaleSet] for why we use index-1. impl DefaultColorScaleSet { - pub fn light(&self, index: usize) -> Hsla { - self.light[index - 1].into() + pub fn light(&self, index: ColorScaleStep) -> Hsla { + Rgba::try_from(self.light[index - 1]).unwrap().into() } - pub fn light_alpha(&self, index: usize) -> Hsla { - self.light_alpha[index - 1].into() + pub fn light_alpha(&self, index: ColorScaleStep) -> Hsla { + Rgba::try_from(self.light_alpha[index - 1]).unwrap().into() } - pub fn dark(&self, index: usize) -> Hsla { - self.dark[index - 1].into() + pub fn dark(&self, index: ColorScaleStep) -> Hsla { + Rgba::try_from(self.dark[index - 1]).unwrap().into() } - pub fn dark_alpha(&self, index: usize) -> Hsla { - self.dark_alpha[index - 1].into() + pub fn dark_alpha(&self, index: ColorScaleStep) -> Hsla { + Rgba::try_from(self.dark_alpha[index - 1]).unwrap().into() } }