1 #pragma once 2 #include <nlohmann/json.hpp> 3 4 namespace pcie_slots 5 { 6 // clang-format off 7 8 enum class SlotTypes{ 9 Invalid, 10 FullLength, 11 HalfLength, 12 LowProfile, 13 Mini, 14 M2, 15 OEM, 16 OCP3Small, 17 OCP3Large, 18 U2, 19 }; 20 21 NLOHMANN_JSON_SERIALIZE_ENUM(SlotTypes, { 22 {SlotTypes::Invalid, "Invalid"}, 23 {SlotTypes::FullLength, "FullLength"}, 24 {SlotTypes::HalfLength, "HalfLength"}, 25 {SlotTypes::LowProfile, "LowProfile"}, 26 {SlotTypes::Mini, "Mini"}, 27 {SlotTypes::M2, "M2"}, 28 {SlotTypes::OEM, "OEM"}, 29 {SlotTypes::OCP3Small, "OCP3Small"}, 30 {SlotTypes::OCP3Large, "OCP3Large"}, 31 {SlotTypes::U2, "U2"}, 32 }); 33 34 } 35 // clang-format on 36