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