summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector@hecrj.dev>2024-09-20 17:52:28 +0200
committerLibravatar GitHub <noreply@github.com>2024-09-20 17:52:28 +0200
commit53f88fe2cf5de51aa1ffa043600cc2c467b8c8b8 (patch)
tree36beb1b1927d663c4316bb6b1e580b4a8ca73d64
parentb78b8bc8e3c8dcb778b4e76bb9ef0ab1b88f633d (diff)
parent2a547ae372053be776b5881ec217402d38768c46 (diff)
downloadiced-53f88fe2cf5de51aa1ffa043600cc2c467b8c8b8.tar.gz
iced-53f88fe2cf5de51aa1ffa043600cc2c467b8c8b8.tar.bz2
iced-53f88fe2cf5de51aa1ffa043600cc2c467b8c8b8.zip
Merge pull request #2592 from iced-rs/fix/color-macro
Drop short-hand notation support for `color!` macro
-rw-r--r--core/src/color.rs28
1 files changed, 8 insertions, 20 deletions
diff --git a/core/src/color.rs b/core/src/color.rs
index 46fe9ecd..827d0289 100644
--- a/core/src/color.rs
+++ b/core/src/color.rs
@@ -229,13 +229,12 @@ impl From<[f32; 4]> for Color {
/// assert_eq!(color!(0, 0, 0, 0.0), Color::TRANSPARENT);
/// assert_eq!(color!(0xffffff), Color::from_rgb(1.0, 1.0, 1.0));
/// assert_eq!(color!(0xffffff, 0.), Color::from_rgba(1.0, 1.0, 1.0, 0.0));
-/// assert_eq!(color!(0x123), Color::from_rgba8(0x11, 0x22, 0x33, 1.0));
-/// assert_eq!(color!(0x123), color!(0x112233));
+/// assert_eq!(color!(0x0000ff), Color::from_rgba(0.0, 0.0, 1.0, 1.0));
/// ```
#[macro_export]
macro_rules! color {
($r:expr, $g:expr, $b:expr) => {
- color!($r, $g, $b, 1.0)
+ $crate::color!($r, $g, $b, 1.0)
};
($r:expr, $g:expr, $b:expr, $a:expr) => {{
let r = $r as f32 / 255.0;
@@ -261,29 +260,18 @@ macro_rules! color {
$crate::Color { r, g, b, a: $a }
}};
($hex:expr) => {{
- color!($hex, 1.0)
+ $crate::color!($hex, 1.0)
}};
($hex:expr, $a:expr) => {{
let hex = $hex as u32;
- if hex <= 0xfff {
- let r = (hex & 0xf00) >> 8;
- let g = (hex & 0x0f0) >> 4;
- let b = (hex & 0x00f);
+ debug_assert!(hex <= 0xffffff, "color! value must not exceed 0xffffff");
- color!((r << 4 | r), (g << 4 | g), (b << 4 | b), $a)
- } else {
- debug_assert!(
- hex <= 0xffffff,
- "color! value must not exceed 0xffffff"
- );
+ let r = (hex & 0xff0000) >> 16;
+ let g = (hex & 0xff00) >> 8;
+ let b = (hex & 0xff);
- let r = (hex & 0xff0000) >> 16;
- let g = (hex & 0xff00) >> 8;
- let b = (hex & 0xff);
-
- color!(r, g, b, $a)
- }
+ $crate::color!(r, g, b, $a)
}};
}