8#include "Arp/Base/Rsc/Commons/RscType.hpp"
9#include "Arp/Base/Rsc/Commons/RscSerializable.hpp"
13namespace Arp::Base::Commons::Security
17namespace Arp::Base::Rsc::Commons
21template<
int N>
class RscString;
22template<
int N>
class RscSecureString;
23template<
int N>
class RscVariant;
26namespace Arp::Base::Rsc::Commons::Impl
45constexpr RscType GetRscType(
void)
48 return std::is_enum<T>::value ? GetRscType<typename underlying_enum_type<T>::type>() :
50 std::is_base_of<RscSerializable, T>::value ? RscType::Struct :
52 std::is_array<T>::value ? RscType::Array : RscType::None
58constexpr RscType GetRscType<boolean>()
64constexpr RscType GetRscType<char8>()
66 return RscType::Uint8;
70constexpr RscType GetRscType<char16>()
76constexpr RscType GetRscType<uint8>()
78 return RscType::Uint8;
82constexpr RscType GetRscType<int8>()
88constexpr RscType GetRscType<uint16>()
90 return RscType::Uint16;
94constexpr RscType GetRscType<int16>()
96 return RscType::Int16;
100constexpr RscType GetRscType<uint32>()
102 return RscType::Uint32;
106constexpr RscType GetRscType<int32>()
108 return RscType::Int32;
112constexpr RscType GetRscType<uint64>()
114 return RscType::Uint64;
118constexpr RscType GetRscType<int64>()
120 return RscType::Int64;
124constexpr RscType GetRscType<float32>()
126 return RscType::Real32;
130constexpr RscType GetRscType<float64>()
132 return RscType::Real64;
136constexpr RscType GetRscType<String>()
138 return RscType::String;
142constexpr RscType GetRscType<char8*>()
144 return RscType::String;
148constexpr RscType GetRscType<char8[]>()
150 return RscType::String;
154constexpr RscType GetRscType<const char8*>()
156 return RscType::String;
160constexpr RscType GetRscType<const char8[]>()
162 return RscType::String;
166constexpr RscType GetRscType<DateTime>()
168 return RscType::DateTime;
172constexpr RscType GetRscType<RscVersion>()
174 return RscType::Version;
178constexpr RscType GetRscType<RscGuid>()
180 return RscType::Guid;
Definition: RscTypeDeduction.Impl.hpp:31