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);
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
								}
							 |