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}