Add docstrings for Channels / ColorSpace

This commit is contained in:
Ivan Smirnov 2022-01-03 20:43:55 +03:00
parent b95022f3fd
commit 4633be5c52

View file

@ -17,14 +17,17 @@ pub enum ColorSpace {
} }
impl ColorSpace { impl ColorSpace {
/// Returns true if the color space is sRGB with linear alpha.
pub const fn is_srgb(self) -> bool { pub const fn is_srgb(self) -> bool {
matches!(self, Self::Srgb) matches!(self, Self::Srgb)
} }
/// Returns true is all channels are linear.
pub const fn is_linear(self) -> bool { pub const fn is_linear(self) -> bool {
matches!(self, Self::Linear) matches!(self, Self::Linear)
} }
/// Converts to an integer (0 if sRGB, 1 if all linear).
pub const fn as_u8(self) -> u8 { pub const fn as_u8(self) -> u8 {
self as u8 self as u8
} }
@ -56,6 +59,7 @@ impl TryFrom<u8> for ColorSpace {
} }
} }
/// Number of 8-bit channels in a pixel.
#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug, PartialOrd, Ord)] #[derive(Copy, Clone, PartialEq, Eq, Hash, Debug, PartialOrd, Ord)]
#[repr(u8)] #[repr(u8)]
pub enum Channels { pub enum Channels {
@ -66,14 +70,17 @@ pub enum Channels {
} }
impl Channels { impl Channels {
/// Returns true if there are 3 channels (RGB).
pub const fn is_rgb(self) -> bool { pub const fn is_rgb(self) -> bool {
matches!(self, Self::Rgb) matches!(self, Self::Rgb)
} }
/// Returns true if there are 4 channels (RGBA).
pub const fn is_rgba(self) -> bool { pub const fn is_rgba(self) -> bool {
matches!(self, Self::Rgba) matches!(self, Self::Rgba)
} }
/// Converts to an integer (3 if RGB, 4 if RGBA).
pub const fn as_u8(self) -> u8 { pub const fn as_u8(self) -> u8 {
self as u8 self as u8
} }