mirror of
https://github.com/MaskRay/ccls.git
synced 2025-02-20 07:30:50 +00:00
Reorder Reflect functions
This commit is contained in:
parent
0c9f572637
commit
4758b70d00
@ -24,6 +24,7 @@ void Reflect(Reader& visitor, int16_t& value) {
|
||||
void Reflect(Writer& visitor, int16_t& value) {
|
||||
visitor.Int(value);
|
||||
}
|
||||
|
||||
// int32_t
|
||||
void Reflect(Reader& visitor, int32_t& value) {
|
||||
if (visitor.IsInt())
|
||||
@ -32,6 +33,7 @@ void Reflect(Reader& visitor, int32_t& value) {
|
||||
void Reflect(Writer& visitor, int32_t& value) {
|
||||
visitor.Int(value);
|
||||
}
|
||||
|
||||
// int64_t
|
||||
void Reflect(Reader& visitor, int64_t& value) {
|
||||
if (visitor.IsInt64())
|
||||
@ -40,6 +42,7 @@ void Reflect(Reader& visitor, int64_t& value) {
|
||||
void Reflect(Writer& visitor, int64_t& value) {
|
||||
visitor.Int64(value);
|
||||
}
|
||||
|
||||
// uint64_t
|
||||
void Reflect(Reader& visitor, uint64_t& value) {
|
||||
if (visitor.IsUint64())
|
||||
@ -48,6 +51,7 @@ void Reflect(Reader& visitor, uint64_t& value) {
|
||||
void Reflect(Writer& visitor, uint64_t& value) {
|
||||
visitor.Uint64(value);
|
||||
}
|
||||
|
||||
// bool
|
||||
void Reflect(Reader& visitor, bool& value) {
|
||||
if (visitor.IsBool())
|
||||
@ -56,6 +60,7 @@ void Reflect(Reader& visitor, bool& value) {
|
||||
void Reflect(Writer& visitor, bool& value) {
|
||||
visitor.Bool(value);
|
||||
}
|
||||
|
||||
// std::string
|
||||
void Reflect(Reader& visitor, std::string& value) {
|
||||
if (visitor.IsString())
|
||||
|
@ -97,23 +97,27 @@ void Reflect(Writer& visitor, uint64_t& value);
|
||||
// bool
|
||||
void Reflect(Reader& visitor, bool& value);
|
||||
void Reflect(Writer& visitor, bool& value);
|
||||
|
||||
// std::string
|
||||
void Reflect(Reader& visitor, std::string& value);
|
||||
void Reflect(Writer& visitor, std::string& value);
|
||||
|
||||
// Writer:
|
||||
// std::optional
|
||||
template <typename T>
|
||||
void Reflect(Writer& visitor, std::vector<T>& values) {
|
||||
visitor.StartArray();
|
||||
for (auto& value : values)
|
||||
Reflect(visitor, value);
|
||||
visitor.EndArray();
|
||||
void Reflect(Reader& visitor, optional<T>& value) {
|
||||
if (visitor.IsNull())
|
||||
return;
|
||||
T real_value{};
|
||||
Reflect(visitor, real_value);
|
||||
value = real_value;
|
||||
}
|
||||
template <typename T>
|
||||
void Reflect(Writer& visitor, optional<T>& value) {
|
||||
if (value)
|
||||
Reflect(visitor, value.value());
|
||||
}
|
||||
|
||||
// std::variant (Writer only)
|
||||
template <typename T0, typename T1>
|
||||
void Reflect(Writer& visitor, std::variant<T0, T1>& value) {
|
||||
if (value.index() == 0)
|
||||
@ -121,6 +125,28 @@ void Reflect(Writer& visitor, std::variant<T0, T1>& value) {
|
||||
else
|
||||
Reflect(visitor, std::get<1>(value));
|
||||
}
|
||||
|
||||
// std::vector
|
||||
template <typename T>
|
||||
void Reflect(Reader& visitor, std::vector<T>& values) {
|
||||
if (!visitor.IsArray())
|
||||
return;
|
||||
for (auto& entry : visitor.GetArray()) {
|
||||
T entry_value;
|
||||
Reflect(entry, entry_value);
|
||||
values.push_back(entry_value);
|
||||
}
|
||||
}
|
||||
template <typename T>
|
||||
void Reflect(Writer& visitor, std::vector<T>& values) {
|
||||
visitor.StartArray();
|
||||
for (auto& value : values)
|
||||
Reflect(visitor, value);
|
||||
visitor.EndArray();
|
||||
}
|
||||
|
||||
// Writer:
|
||||
|
||||
inline void DefaultReflectMemberStart(Writer& visitor) {
|
||||
visitor.StartObject();
|
||||
}
|
||||
@ -156,24 +182,8 @@ void ReflectMember(Writer& visitor, const char* name, optional<T>& value) {
|
||||
void ReflectMember(Writer& visitor, const char* name, std::string& value);
|
||||
|
||||
// Reader:
|
||||
template <typename T>
|
||||
void Reflect(Reader& visitor, std::vector<T>& values) {
|
||||
if (!visitor.IsArray())
|
||||
return;
|
||||
for (auto& entry : visitor.GetArray()) {
|
||||
T entry_value;
|
||||
Reflect(entry, entry_value);
|
||||
values.push_back(entry_value);
|
||||
}
|
||||
}
|
||||
template <typename T>
|
||||
void Reflect(Reader& visitor, optional<T>& value) {
|
||||
if (visitor.IsNull())
|
||||
return;
|
||||
T real_value{};
|
||||
Reflect(visitor, real_value);
|
||||
value = real_value;
|
||||
}
|
||||
|
||||
|
||||
inline void DefaultReflectMemberStart(Reader& visitor) {}
|
||||
template <typename T>
|
||||
bool ReflectMemberStart(Reader& visitor, T& value) {
|
||||
|
Loading…
Reference in New Issue
Block a user