use serde::Deserialize;
use crate::color::Color;
#[non_exhaustive]
#[derive(Copy, Clone, Debug, Deserialize)]
pub enum LedStripMode {
Full(Color),
Rainbow(Direction),
Snake(SnakeMode, Direction),
}
impl Default for LedStripMode {
fn default() -> Self {
Self::Snake(SnakeMode::Classic(Color::White), Default::default())
}
}
#[derive(Clone, Copy, Debug, Default, Deserialize)]
pub enum Direction {
Left,
#[default]
Right,
}
#[derive(Clone, Copy, Debug, Deserialize)]
pub enum SnakeMode {
Classic(Color),
Rainbow,
}
impl Default for SnakeMode {
fn default() -> Self {
Self::Classic(Default::default())
}
}