From b60a87d765ae49fe369c2c3bd66674f2615845c5 Mon Sep 17 00:00:00 2001 From: Erik Hedvall Date: Wed, 31 Jul 2024 12:35:24 +0200 Subject: [PATCH 1/2] Make `from_degrees` for hues a `const fn` --- palette/src/hues.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/palette/src/hues.rs b/palette/src/hues.rs index cfc17e318..c3f0e641d 100644 --- a/palette/src/hues.rs +++ b/palette/src/hues.rs @@ -81,7 +81,7 @@ macro_rules! make_hues { impl $name { /// Create a new hue from degrees. This is an alias for `new`. #[inline] - pub fn from_degrees(degrees: T) -> Self { + pub const fn from_degrees(degrees: T) -> Self { Self::new(degrees) } From 13368ac68cb64e2d53f63c3e86fff3e0eb33aff0 Mon Sep 17 00:00:00 2001 From: Erik Hedvall Date: Wed, 31 Jul 2024 12:59:34 +0200 Subject: [PATCH 2/2] Make a few `palette::cast::*` functions `const fn` --- palette/src/cast/array.rs | 18 ++++++------------ palette/src/cast/uint.rs | 12 ++++++------ 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/palette/src/cast/array.rs b/palette/src/cast/array.rs index 25c9e9f2d..77bdbb82e 100644 --- a/palette/src/cast/array.rs +++ b/palette/src/cast/array.rs @@ -238,15 +238,12 @@ where /// let array3 = <&[_; 3]>::from(&color); /// ``` #[inline] -pub fn into_array_ref(value: &T) -> &T::Array +pub const fn into_array_ref(value: &T) -> &T::Array where T: ArrayCast, { - assert_eq!(core::mem::size_of::(), core::mem::size_of::()); - assert_eq!( - core::mem::align_of::(), - core::mem::align_of::() - ); + assert!(core::mem::size_of::() == core::mem::size_of::()); + assert!(core::mem::align_of::() == core::mem::align_of::()); let value: *const T = value; @@ -282,15 +279,12 @@ where /// let color3 = <&Srgb>::from(&array); /// ``` #[inline] -pub fn from_array_ref(value: &T::Array) -> &T +pub const fn from_array_ref(value: &T::Array) -> &T where T: ArrayCast, { - assert_eq!(core::mem::size_of::(), core::mem::size_of::()); - assert_eq!( - core::mem::align_of::(), - core::mem::align_of::() - ); + assert!(core::mem::size_of::() == core::mem::size_of::()); + assert!(core::mem::align_of::() == core::mem::align_of::()); let value: *const T::Array = value; diff --git a/palette/src/cast/uint.rs b/palette/src/cast/uint.rs index fc2ff022f..faf843047 100644 --- a/palette/src/cast/uint.rs +++ b/palette/src/cast/uint.rs @@ -110,12 +110,12 @@ where /// assert_eq!(cast::into_uint_ref(&color), &0xFF17C64C); /// ``` #[inline] -pub fn into_uint_ref(value: &T) -> &T::Uint +pub const fn into_uint_ref(value: &T) -> &T::Uint where T: UintCast, { - assert_eq!(core::mem::size_of::(), core::mem::size_of::()); - assert_eq!(core::mem::align_of::(), core::mem::align_of::()); + assert!(core::mem::size_of::() == core::mem::size_of::()); + assert!(core::mem::align_of::() == core::mem::align_of::()); let value: *const T = value; @@ -133,12 +133,12 @@ where /// assert_eq!(cast::from_uint_ref::(&0xFF17C64C), &color); /// ``` #[inline] -pub fn from_uint_ref(value: &T::Uint) -> &T +pub const fn from_uint_ref(value: &T::Uint) -> &T where T: UintCast, { - assert_eq!(core::mem::size_of::(), core::mem::size_of::()); - assert_eq!(core::mem::align_of::(), core::mem::align_of::()); + assert!(core::mem::size_of::() == core::mem::size_of::()); + assert!(core::mem::align_of::() == core::mem::align_of::()); let value: *const T::Uint = value;