oxide_spark_utils/command/
led_strip_mode.rs1use 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}