color_core/rgb/rgba/mod.rs
1use super::*;
2
3mod traits;
4
5impl Default for RGBA8 {
6 fn default() -> Self {
7 Self { r: 0, g: 0, b: 0, a: 255 }
8 }
9}
10
11impl RGBA8 {
12 /// Create [`RGBA8`] from `(u8, u8, u8)` tuple.
13 pub fn gray(value: u8) -> Self {
14 Self { r: value, g: value, b: value, a: 255 }
15 }
16 /// Create [`RGBA8`] from `(u8, u8, u8, u8)` tuple.
17 pub fn new(r: u8, g: u8, b: u8, a: u8) -> Self {
18 Self { r, g, b, a }
19 }
20 /// Map operator to all channels.
21 pub fn map_all<F>(&self, f: F) -> Self
22 where
23 F: Fn(u8) -> u8,
24 {
25 Self { r: f(self.r), g: f(self.g), b: f(self.b), a: f(self.a) }
26 }
27}