Defining the OverrideCode enum

The OverrideCode enum gives typesafe definitions and names to the different override codes from the linked library. This code associates named enum values with the numerical enumerated values returned or sent to the FFI. Notice the syntax pattern assigning integer values to each enum element:

pub enum OverrideCode {
IssueOverride = 1,
IssuePrivileged = 2,
IssueAdmin = 3,
IssueInputFloor = 4,
IssueManualMode = 5,
IssueNormalMode = 6,
IssueFlash = 7,
IssueToggleLight = 8,
IssueSetLightColor = 9,
}

pub fn toOverrideCode(i: i32) -> OverrideCode {
match i {
1 => OverrideCode::IssueOverride,
2 => OverrideCode::IssuePrivileged,
3 => OverrideCode::IssueAdmin,
4 => OverrideCode::IssueInputFloor,
5 => OverrideCode::IssueManualMode,
6 => OverrideCode::IssueNormalMode,
7 => OverrideCode::IssueFlash,
8 => OverrideCode::IssueToggleLight,
9 => OverrideCode::IssueSetLightColor,
_ => panic!("Unexpected override code: {}", i)
}
}