From a0a94c6c01e3ab667048d344ba3f088c942b4633 Mon Sep 17 00:00:00 2001 From: hodasemi Date: Mon, 10 Apr 2023 21:25:33 +0200 Subject: [PATCH] Add element access to Color --- src/color.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/color.rs b/src/color.rs index 08e6fda..6390ffe 100644 --- a/src/color.rs +++ b/src/color.rs @@ -18,6 +18,47 @@ pub enum Color { Custom(u8, u8, u8), } +impl Color { + pub fn r(&self) -> u8 { + match self { + Color::White => 255, + Color::Black => 0, + Color::Red => 255, + Color::Blue => 0, + Color::Green => 0, + Color::Orange => 255, + Color::Yellow => 255, + Color::Custom(r, _g, _b) => *r, + } + } + + pub fn g(&self) -> u8 { + match self { + Color::White => 255, + Color::Black => 0, + Color::Red => 0, + Color::Blue => 0, + Color::Green => 255, + Color::Orange => 166, + Color::Yellow => 255, + Color::Custom(_r, g, _b) => *g, + } + } + + pub fn b(&self) -> u8 { + match self { + Color::White => 255, + Color::Black => 0, + Color::Red => 0, + Color::Blue => 255, + Color::Green => 0, + Color::Orange => 0, + Color::Yellow => 0, + Color::Custom(_r, _g, b) => *b, + } + } +} + impl Into<[f32; 3]> for Color { fn into(self) -> [f32; 3] { match self {