From 4b0efda354f241af7973ba5034cbe8870e7316fc Mon Sep 17 00:00:00 2001 From: mamekoro <86554319+mamekoro@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:26:35 +0900 Subject: [PATCH] Make some associated functions of `Color` const (#16091) # Objective Make the following functions `const` that will be useful to define colors as constants. - `Color::srgb_from_array` - `Color::srgba_u8` - `Color::srgb_u8` The last two require Rust 1.82.0. ## Solution - Make them `const` - Change MSRV to 1.82.0 ## Testing I tested bevy_color only. My machine does not have enough RAM capacity to test the whole bevy. `cargo test -p bevy_color` --- Cargo.toml | 2 +- crates/bevy_color/src/color.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 76e31bc4fe..4bb5ace1b9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ keywords = ["game", "engine", "gamedev", "graphics", "bevy"] license = "MIT OR Apache-2.0" repository = "https://github.com/bevyengine/bevy" documentation = "https://docs.rs/bevy" -rust-version = "1.81.0" +rust-version = "1.82.0" [workspace] exclude = [ diff --git a/crates/bevy_color/src/color.rs b/crates/bevy_color/src/color.rs index 6af43893a6..d2e4cb7921 100644 --- a/crates/bevy_color/src/color.rs +++ b/crates/bevy_color/src/color.rs @@ -123,7 +123,7 @@ impl Color { } /// Reads an array of floats to creates a new [`Color`] object storing a [`Srgba`] color with an alpha of 1.0. - pub fn srgb_from_array(array: [f32; 3]) -> Self { + pub const fn srgb_from_array(array: [f32; 3]) -> Self { Self::Srgba(Srgba { red: array[0], green: array[1], @@ -143,7 +143,7 @@ impl Color { /// Creates a new [`Color`] object storing a [`Srgba`] color from [`u8`] values. /// /// A value of 0 is interpreted as 0.0, and a value of 255 is interpreted as 1.0. - pub fn srgba_u8(red: u8, green: u8, blue: u8, alpha: u8) -> Self { + pub const fn srgba_u8(red: u8, green: u8, blue: u8, alpha: u8) -> Self { Self::Srgba(Srgba { red: red as f32 / 255.0, green: green as f32 / 255.0, @@ -163,7 +163,7 @@ impl Color { /// Creates a new [`Color`] object storing a [`Srgba`] color from [`u8`] values with an alpha of 1.0. /// /// A value of 0 is interpreted as 0.0, and a value of 255 is interpreted as 1.0. - pub fn srgb_u8(red: u8, green: u8, blue: u8) -> Self { + pub const fn srgb_u8(red: u8, green: u8, blue: u8) -> Self { Self::Srgba(Srgba { red: red as f32 / 255.0, green: green as f32 / 255.0,