Implement explicit Color::into_u32 instead of Into trait

This commit is contained in:
Héctor Ramón Jiménez 2023-06-06 13:37:40 +02:00 committed by Bingus
parent ea7f2626b1
commit 226ce3d6c9
No known key found for this signature in database
GPG key ID: 5F84D2AA40A9F170

View file

@ -120,6 +120,18 @@ impl Color {
]
}
/// Converts the [`Color`] into a `u32` value containing its RGBA8 components.
pub fn into_u32(self) -> u32 {
let [r, g, b, a] = self.into_rgba8();
let r = (r as u32) << 24;
let g = (g as u32) << 16;
let b = (b as u32) << 8;
let a = a as u32;
r | g | b | a
}
/// Inverts the [`Color`] in-place.
pub fn invert(&mut self) {
self.r = 1.0f32 - self.r;
@ -145,19 +157,6 @@ impl From<[f32; 4]> for Color {
}
}
impl Into<u32> for Color {
fn into(self) -> u32 {
let [r, g, b, a] = self.into_rgba8();
let r = (r as u32) << 24;
let g = (g as u32) << 16;
let b = (b as u32) << 8;
let a = a as u32;
r | g | b | a
}
}
/// Creates a [`Color`] with shorter and cleaner syntax.
///
/// # Examples