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