22 lines
659 B
C++
22 lines
659 B
C++
#pragma once
|
|
#include "type.h"
|
|
namespace YAML
|
|
{
|
|
template<typename T>
|
|
struct TextSerialize {
|
|
static string Serialize(const Any& any);
|
|
static bool Unserialize(const string& val, const Any& any);
|
|
};
|
|
using StringFuncs = std::pair<string(*)(const Any&), bool(*)(const string&, const Any& any)>;
|
|
using StringFuncMap = std::unordered_map<const refl::UClass*, StringFuncs>;
|
|
class TextArchive{
|
|
static StringFuncMap BuildStringMap();
|
|
public:
|
|
inline static StringFuncMap FuncMap = BuildStringMap();
|
|
template<typename T>
|
|
static void Register();
|
|
static Node Serialize(const Any& any);
|
|
static bool Unserialize(const Node& res, const Any& any);
|
|
};
|
|
}
|