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