oxide_spark_utils/command/
led_strip_mode.rs

1use serde::Deserialize;
2
3use crate::color::Color;
4
5#[non_exhaustive]
6#[derive(Copy, Clone, Debug, Deserialize)]
7pub enum LedStripMode {
8	Full(Color),
9	Rainbow(Direction),
10	Snake(SnakeMode, Direction),
11}
12
13impl Default for LedStripMode {
14	fn default() -> Self {
15		Self::Snake(SnakeMode::Classic(Color::White), Default::default())
16	}
17}
18
19#[derive(Clone, Copy, Debug, Default, Deserialize)]
20pub enum Direction {
21	Left,
22	#[default]
23	Right,
24}
25
26#[derive(Clone, Copy, Debug, Deserialize)]
27pub enum SnakeMode {
28	Classic(Color),
29	Rainbow,
30}
31
32impl Default for SnakeMode {
33	fn default() -> Self {
34		Self::Classic(Default::default())
35	}
36}