elk_led_controller/
schedule.rs

1/*! 
2 # Scheduling functionality for LED strips
3 
4 This module provides scheduling capabilities for the LED strips,
5 allowing them to be turned on or off at specific days and times.
6*/
7
8/// Represents days of the week for scheduling
9#[derive(Debug, Clone, Copy)]
10pub struct Days {
11    /// Monday (0x01)
12    pub monday: u8,
13    /// Tuesday (0x02)
14    pub tuesday: u8,
15    /// Wednesday (0x04)
16    pub wednesday: u8,
17    /// Thursday (0x08)
18    pub thursday: u8,
19    /// Friday (0x10)
20    pub friday: u8,
21    /// Saturday (0x20)
22    pub saturday: u8,
23    /// Sunday (0x40)
24    pub sunday: u8,
25    /// All days (0x7F)
26    pub all: u8,
27    /// Week days (Monday-Friday, 0x1F)
28    pub week_days: u8,
29    /// Weekend days (Saturday-Sunday, 0x60)
30    pub weekend_days: u8,
31    /// No days (0x00)
32    pub none: u8,
33}
34
35/// Predefined day constants for scheduling
36pub const WEEK_DAYS: Days = Days {
37    monday: 0x01,
38    tuesday: 0x02,
39    wednesday: 0x04,
40    thursday: 0x08,
41    friday: 0x10,
42    saturday: 0x20,
43    sunday: 0x40,
44    all: 0x01 + 0x02 + 0x04 + 0x08 + 0x10 + 0x20 + 0x40,
45    week_days: 0x01 + 0x02 + 0x04 + 0x08 + 0x10,
46    weekend_days: 0x20 + 0x40,
47    none: 0x00,
48};