1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace connection
5 {
6 // clang-format off
7 
8 enum class ConnectionType{
9     Invalid,
10     Storage,
11     Memory,
12 };
13 
14 enum class AccessCapability{
15     Invalid,
16     Read,
17     Write,
18 };
19 
20 enum class AccessState{
21     Invalid,
22     Optimized,
23     NonOptimized,
24     Standby,
25     Unavailable,
26     Transitioning,
27 };
28 
29 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectionType, {
30     {ConnectionType::Invalid, "Invalid"},
31     {ConnectionType::Storage, "Storage"},
32     {ConnectionType::Memory, "Memory"},
33 });
34 
35 NLOHMANN_JSON_SERIALIZE_ENUM(AccessCapability, {
36     {AccessCapability::Invalid, "Invalid"},
37     {AccessCapability::Read, "Read"},
38     {AccessCapability::Write, "Write"},
39 });
40 
41 NLOHMANN_JSON_SERIALIZE_ENUM(AccessState, {
42     {AccessState::Invalid, "Invalid"},
43     {AccessState::Optimized, "Optimized"},
44     {AccessState::NonOptimized, "NonOptimized"},
45     {AccessState::Standby, "Standby"},
46     {AccessState::Unavailable, "Unavailable"},
47     {AccessState::Transitioning, "Transitioning"},
48 });
49 
50 }
51 // clang-format on
52