zengine-old/engine/3rdparty/zlib/include/refl/field.h
2024-04-03 17:58:02 +08:00

27 lines
565 B
C++

#pragma once
#include "UTemplate/Type.hpp"
#include <variant>
#include <functional>
using Ubpa::Name;
using Ubpa::type_name;
namespace refl {
struct MemberField {
uint32_t offset;
};
struct MemberFuncField {
using Offsetor = std::function<void* (void*)>;
Offsetor func;
};
class UClass;
struct FieldPtr {
using Offsetor = std::function<void* (void*)>;
// raw offsetor
using Data = std::variant<
uint32_t, // forward_offset_value 0 BASIC
double // static_obj 2 STATIC
>;
Name name;
const UClass* type;
Data data;
};
}