Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
DefaultJsonGenerator.h
Go to the documentation of this file.
1#pragma once
2#include <json.hpp>
3
4#include "Serializable.h"
5
6namespace EngineCore {
7 class Serializable;
8}
9
10namespace EngineCore {
11
13 public:
15 static DefaultJsonGenerator instance;
16 return instance;
17 }
18
19 template<class T>
20 nlohmann::json getDefaultSerialization() {
21 // Ensure T is derived from Serializable
22 static_assert(std::is_base_of<Serializable, T>::value, "T must derive from Serializable");
23
24 // Create an instance of T
25 std::shared_ptr<T> object = std::make_shared<T>();
26
27 // Serialize the object
28 nlohmann::json archive;
29 object->Serialize(archive);
30 return archive;
31 }
32
33 private:
35
36 // prevent copy
39 };
40
41}
static DefaultJsonGenerator & getInstance()
DefaultJsonGenerator & operator=(const DefaultJsonGenerator &)=delete
DefaultJsonGenerator(const DefaultJsonGenerator &)=delete
Log category system implementation.