small refactoring in color crate (#6695)

Make the code more readable
This commit is contained in:
Thomas Coratger 2024-01-25 13:36:52 +01:00 committed by GitHub
parent 062288dea5
commit e13fb31287
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -59,10 +59,7 @@ pub fn hex_to_hsla(s: &str) -> Result<RGBAColor, String> {
// Expand shorthand formats #RGB and #RGBA to #RRGGBB and #RRGGBBAA // Expand shorthand formats #RGB and #RGBA to #RRGGBB and #RRGGBBAA
let hex = match hex.len() { let hex = match hex.len() {
3 => hex 3 => hex.chars().map(|c| c.to_string().repeat(2)).collect(),
.chars()
.map(|c| c.to_string().repeat(2))
.collect::<String>(),
4 => { 4 => {
let (rgb, alpha) = hex.split_at(3); let (rgb, alpha) = hex.split_at(3);
let rgb = rgb let rgb = rgb
@ -80,14 +77,12 @@ pub fn hex_to_hsla(s: &str) -> Result<RGBAColor, String> {
let hex_val = let hex_val =
u32::from_str_radix(&hex, 16).map_err(|_| format!("Invalid hexadecimal string: {}", s))?; u32::from_str_radix(&hex, 16).map_err(|_| format!("Invalid hexadecimal string: {}", s))?;
let r = ((hex_val >> 24) & 0xFF) as f32 / 255.0; Ok(RGBAColor {
let g = ((hex_val >> 16) & 0xFF) as f32 / 255.0; r: ((hex_val >> 24) & 0xFF) as f32 / 255.0,
let b = ((hex_val >> 8) & 0xFF) as f32 / 255.0; g: ((hex_val >> 16) & 0xFF) as f32 / 255.0,
let a = (hex_val & 0xFF) as f32 / 255.0; b: ((hex_val >> 8) & 0xFF) as f32 / 255.0,
a: (hex_val & 0xFF) as f32 / 255.0,
let color = RGBAColor { r, g, b, a }; })
Ok(color)
} }
// These derives implement to and from palette's color types. // These derives implement to and from palette's color types.
@ -128,8 +123,7 @@ where
Rgb<S, f32>: FromColorUnclamped<Srgb>, Rgb<S, f32>: FromColorUnclamped<Srgb>,
{ {
fn from_color_unclamped(color: RGBAColor) -> Self { fn from_color_unclamped(color: RGBAColor) -> Self {
let srgb = Srgb::new(color.r, color.g, color.b); Self::from_color_unclamped(Srgb::new(color.r, color.g, color.b))
Self::from_color_unclamped(srgb)
} }
} }