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 RegisteredError; }
18namespace Scripting::QuickJS { class RegisteredInterface; }
19namespace Scripting::QuickJS { struct ResolvedTypes; }
20// clang-format on
21
22namespace Scripting::QuickJS {
23
24class ClassRegistry {
25public:
26 // ClassRegistry inner types declare
27 // clang-format off
28 struct TypeHash;
29 // clang-format on
30
31 // ClassRegistry inner types define
32 struct TypeHash {};
33
34public:
35 // member variables
36 // NOLINTBEGIN
45 // NOLINTEND
46
47public:
48 // prevent constructor by default
49 ClassRegistry& operator=(ClassRegistry const&);
50 ClassRegistry(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 ::std::optional<::Scripting::TypeNameInfo> getNameForType(
76 ::Scripting::QuickJS::ResolvedTypes const& resolvedTypes,
77 ::entt::meta_type const& type,
78 bool allowUnknownTypes
79 ) const;
80
81 MCNAPI ::Scripting::QuickJS::RegisteredClass&
83
84 MCNAPI void registerEnum(::JSContext* enumBinding, ::Scripting::EnumBinding const&);
85
86 MCNAPI ::Scripting::QuickJS::RegisteredError&
88
89 MCNAPI ::Scripting::QuickJS::RegisteredInterface&
91
93 // NOLINTEND
94
95public:
96 // constructor thunks
97 // NOLINTBEGIN
98 MCNAPI void* $ctor();
99 // NOLINTEND
100
101public:
102 // destructor thunk
103 // NOLINTBEGIN
104 MCNAPI void $dtor();
105 // NOLINTEND
106};
107
108} // namespace Scripting::QuickJS
MCAPI void registerEnum(::JSContext *enumBinding, ::Scripting::EnumBinding const &)
MCAPI void _registerBakedProperties(::Scripting::ClassBinding const &classBinding)
MCAPI void _collectAllProperties(::std::unordered_set< ::Scripting::PropertyBinding, ::Scripting::HashPropertyBinding, ::Scripting::EqualPropertyBinding > &allProperties, ::Scripting::ClassBinding const &classBinding)
MCAPI::Scripting::QuickJS::RegisteredClass & registerClass(::JSContext *ctx, ::Scripting::ClassBinding const &classBinding, bool)
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 void _collectAllInterfaceProperties(::std::unordered_set< ::Scripting::PropertyBinding, ::Scripting::HashPropertyBinding, ::Scripting::EqualPropertyBinding > &allProperties, ::Scripting::InterfaceBinding const &interfaceBinding)
MCAPI::Scripting::QuickJS::RegisteredInterface & registerInterface(::JSContext *interfaceBinding, ::Scripting::InterfaceBinding const &)
Definition RegisteredClass.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:16
Definition HashPropertyBinding.h:7
Definition InterfaceBinding.h:16
Definition PropertyBinding.h:10
Definition ClassRegistry.h:32
Definition ResolvedTypes.h:7
Definition TypeNameInfo.h:7
Definition ctx.h:5
Definition Alias.h:14