LeviLamina
Loading...
Searching...
No Matches
ClassRegistry.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/scripting/binding_type/PropertyBinding.h"
7#include "mc/deps/scripting/quickjs/bindings/RegisteredClass.h"
8
9// auto generated forward declare list
10// clang-format off
11struct JSContext;
12namespace Scripting { struct ClassBinding; }
13namespace Scripting { struct EnumBinding; }
14namespace Scripting { struct EqualPropertyBinding; }
15namespace Scripting { struct ErrorBinding; }
16namespace Scripting { struct HashPropertyBinding; }
17namespace Scripting { struct InterfaceBinding; }
18namespace Scripting { struct TypeNameInfo; }
19namespace Scripting::QuickJS { class RegisteredEnum; }
20namespace Scripting::QuickJS { class RegisteredError; }
21namespace Scripting::QuickJS { class RegisteredInterface; }
22namespace Scripting::QuickJS { struct ResolvedTypes; }
23// clang-format on
24
25namespace Scripting::QuickJS {
26
27class ClassRegistry {
28public:
29 // ClassRegistry inner types declare
30 // clang-format off
31 struct TypeHash;
32 // clang-format on
33
34 // ClassRegistry inner types define
35 struct TypeHash {};
36
37public:
38 // member variables
39 // NOLINTBEGIN
47 // NOLINTEND
48
49public:
50 // prevent constructor by default
51 ClassRegistry& operator=(ClassRegistry const&);
52 ClassRegistry(ClassRegistry const&);
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCNAPI ClassRegistry();
58
60 ::std::unordered_set<
64 ::Scripting::InterfaceBinding const& interfaceBinding
65 );
66
68 ::std::unordered_set<
72 ::Scripting::ClassBinding const& classBinding
73 );
74
75 MCNAPI void _registerBakedProperties(::Scripting::ClassBinding const& classBinding);
76
77 MCNAPI ::Scripting::QuickJS::RegisteredClass* findClassByType(::entt::meta_type const& type) const;
78
79 MCNAPI ::Scripting::QuickJS::RegisteredEnum* findEnumByType(::entt::meta_type const& type) const;
80
81 MCNAPI ::Scripting::QuickJS::RegisteredError* findErrorByType(::entt::meta_type const& type) const;
82
83 MCNAPI ::Scripting::QuickJS::RegisteredInterface* findInterfaceByType(::entt::meta_type const& type) const;
84
85 MCNAPI ::std::optional<::Scripting::TypeNameInfo> getNameForType(
86 ::Scripting::QuickJS::ResolvedTypes const& resolvedTypes,
87 ::entt::meta_type const& type,
88 bool allowUnknownTypes
89 ) const;
90
91 MCNAPI ::Scripting::QuickJS::RegisteredClass&
92 registerClass(::JSContext* ctx, ::Scripting::ClassBinding const& classBinding, bool forModule);
93
94 MCNAPI void registerEnum(::JSContext* ctx, ::Scripting::EnumBinding const& enumBinding);
95
96 MCNAPI ::Scripting::QuickJS::RegisteredError&
98
99 MCNAPI ::Scripting::QuickJS::RegisteredInterface&
101
103 // NOLINTEND
104
105public:
106 // constructor thunks
107 // NOLINTBEGIN
108 MCNAPI void* $ctor();
109 // NOLINTEND
110
111public:
112 // destructor thunk
113 // NOLINTBEGIN
114 MCNAPI void $dtor();
115 // NOLINTEND
116};
117
118} // namespace Scripting::QuickJS
MCAPI::Scripting::QuickJS::RegisteredClass * findClassByType(::entt::meta_type const &type) const
MCAPI::Scripting::QuickJS::RegisteredInterface * findInterfaceByType(::entt::meta_type const &type) const
MCAPI void _registerBakedProperties(::Scripting::ClassBinding const &classBinding)
MCAPI::Scripting::QuickJS::RegisteredError * findErrorByType(::entt::meta_type const &type) const
MCAPI void _collectAllProperties(::std::unordered_set< ::Scripting::PropertyBinding, ::Scripting::HashPropertyBinding, ::Scripting::EqualPropertyBinding > &allProperties, ::Scripting::ClassBinding const &classBinding)
MCAPI::Scripting::QuickJS::RegisteredError & registerError(::JSContext *ctx, ::Scripting::ErrorBinding const &errorBinding)
MCAPI ::std::optional<::Scripting::TypeNameInfo > getNameForType(::Scripting::QuickJS::ResolvedTypes const &resolvedTypes, ::entt::meta_type const &type, bool allowUnknownTypes) const
MCAPI::Scripting::QuickJS::RegisteredClass & registerClass(::JSContext *ctx, ::Scripting::ClassBinding const &classBinding, bool forModule)
MCAPI::Scripting::QuickJS::RegisteredInterface & registerInterface(::JSContext *ctx, ::Scripting::InterfaceBinding const &interfaceBinding)
MCAPI void _collectAllInterfaceProperties(::std::unordered_set< ::Scripting::PropertyBinding, ::Scripting::HashPropertyBinding, ::Scripting::EqualPropertyBinding > &allProperties, ::Scripting::InterfaceBinding const &interfaceBinding)
MCAPI void registerEnum(::JSContext *ctx, ::Scripting::EnumBinding const &enumBinding)
MCAPI::Scripting::QuickJS::RegisteredEnum * findEnumByType(::entt::meta_type const &type) const
Definition RegisteredEnum.h:7
Definition RegisteredError.h:7
Definition RegisteredInterface.h:7
Definition JSContext.h:5
Definition ClassBinding.h:19
Definition EnumBinding.h:15
Definition EqualPropertyBinding.h:7
Definition ErrorBinding.h:15
Definition HashPropertyBinding.h:7
Definition InterfaceBinding.h:16
Definition PropertyBinding.h:10
Definition ClassRegistry.h:35
Definition ResolvedTypes.h:7
Definition TypeNameInfo.h:7
Definition ctx.h:5
Definition Alias.h:14