gled-model 2.30.2

The data model of gled: projects, scenes, effects, animations, curves and assets
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Default, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum SceneInstanceColor {
    Red,
    Green,
    Blue,
    White,
    Orange,
    Yellow,
    Purple,
    #[default]
    Pink,
    Black,
}

impl SceneInstanceColor {
    /// 8 bit RGB, as the UI shows it.
    pub fn rgb8(self) -> [u8; 3] {
        match self {
            Self::Red => [139, 0, 0],       // Dark Red
            Self::Green => [0, 100, 0],     // Dark Green
            Self::Blue => [0, 0, 139],      // Dark Blue
            Self::White => [169, 169, 169], // Dark Gray (instead of white)
            Self::Orange => [255, 140, 0],  // Dark Orange
            Self::Yellow => [204, 204, 0],  // Dark Yellow
            Self::Purple => [75, 0, 130],   // Dark Purple (Indigo)
            Self::Pink => [231, 84, 128],   // Dark Pink
            Self::Black => [0, 0, 0],       // Black
        }
    }
}