rgb/formats/gray_a.rs
1#[repr(C)]
2#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3#[cfg_attr(feature = "defmt-03", derive(defmt::Format))]
4#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash)]
5/// A `Value (brightness) + Alpha` pixel (rgb crate v0.9)
6///
7/// This pixel is commonly used for grayscale images.
8pub struct GrayA<T, A = T> {
9 /// Value - the brightness component. May be luma or luminance.
10 pub v: T,
11 /// Alpha Component
12 pub a: A,
13}
14
15impl<T: Copy> GrayA<T> {
16 /// Reads the `.v` field
17 ///
18 /// This function isn't necessary, but it is forwards-compatible with the next major version of the RGB crate.
19 pub fn value(self) -> T {
20 self.v
21 }
22
23 /// Exposes the `.v` field for writing
24 ///
25 /// This function isn't necessary, but it is forwards-compatible with the next major version of the RGB crate.
26 pub fn value_mut(&mut self) -> &mut T {
27 &mut self.v
28 }
29}