uhppote_rs/types/
task.rs

1use chrono::{NaiveDate, NaiveTime};
2
3#[derive(Debug)]
4pub struct Task {
5    pub task: TaskID,
6    pub door: u8,
7    pub from: NaiveDate,
8    pub to: NaiveDate,
9    pub monday: bool,
10    pub tuesday: bool,
11    pub wednesday: bool,
12    pub thursday: bool,
13    pub friday: bool,
14    pub saturday: bool,
15    pub sunday: bool,
16    pub at: NaiveTime,
17    pub more_cards: u8,
18}
19
20#[derive(Debug)]
21#[repr(u8)]
22pub enum TaskID {
23    ControlDoor = 1,
24    UnlockDoor = 2,
25    LockDoor = 3,
26    DisableTimeProfile = 4,
27    EnableTimeProfile = 5,
28    EnableCardNoPassword = 6,
29    EnableCardWithInPassword = 7,
30    EnableCardWithPassword = 8,
31    EnableMoreCards = 9,
32    DisableMoreCards = 10,
33    TriggerOnce = 11,
34    DisablePushButton = 12,
35    EnablePushButton = 13,
36}
37
38impl From<u8> for TaskID {
39    fn from(task: u8) -> TaskID {
40        match task {
41            1 => TaskID::ControlDoor,
42            2 => TaskID::UnlockDoor,
43            3 => TaskID::LockDoor,
44            4 => TaskID::DisableTimeProfile,
45            5 => TaskID::EnableTimeProfile,
46            6 => TaskID::EnableCardNoPassword,
47            7 => TaskID::EnableCardWithInPassword,
48            8 => TaskID::EnableCardWithPassword,
49            9 => TaskID::EnableMoreCards,
50            10 => TaskID::DisableMoreCards,
51            11 => TaskID::TriggerOnce,
52            12 => TaskID::DisablePushButton,
53            13 => TaskID::EnablePushButton,
54            _ => TaskID::ControlDoor,
55        }
56    }
57}