use serde_repr::{Deserialize_repr, Serialize_repr};
use strum_macros::{Display, EnumString, FromRepr};
#[derive(
Debug,
Clone,
Copy,
EnumString,
Display,
Serialize_repr,
Deserialize_repr,
PartialEq,
Eq,
FromRepr,
)]
#[repr(u32)]
pub enum RebootReasonCode {
Unknown = 0x0000,
UserShutdown = 0x0001,
UserReset = 0x0002,
FirmwareUpdate = 0x0003,
LowPower = 0x0004,
DebuggerHalted = 0x0005,
ButtonReset = 0x0006,
PowerOnReset = 0x0007,
SoftwareReset = 0x0008,
DeepSleep = 0x0009,
PinReset = 0x000A,
UnknownError = 0x8000,
Assert = 0x8001,
WatchdogDeprecated = 0x8002,
BrownOutReset = 0x8003,
Nmi = 0x8004,
HardwareWatchdog = 0x8005,
SoftwareWatchdog = 0x8006,
ClockFailure = 0x8007,
KernelPanic = 0x8008,
FirmwareUpdateError = 0x8009,
BusFault = 0x9100,
MemFault = 0x9200,
UsageFault = 0x9300,
HardFault = 0x9400,
Lockup = 0x9401,
}