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 ClassRegistry();
52
53public:
54 // member functions
55 // NOLINTBEGIN
57 ::std::unordered_set<
61 ::Scripting::InterfaceBinding const& interfaceBinding
62 );
63
65 ::std::unordered_set<
69 ::Scripting::ClassBinding const& classBinding
70 );
71
72 MCNAPI ::std::optional<::Scripting::TypeNameInfo> getNameForType(
73 ::Scripting::QuickJS::ResolvedTypes const& resolvedTypes,
74 ::entt::meta_type const& type,
75 bool allowUnknownTypes
76 ) const;
77
78 MCNAPI ::Scripting::QuickJS::RegisteredClass&
79 registerClass(::JSContext* ctx, ::Scripting::ClassBinding const& classBinding, bool forModule);
80
81 MCNAPI void registerEnum(::JSContext*, ::Scripting::EnumBinding const& enumBinding);
82
83 MCNAPI ::Scripting::QuickJS::RegisteredError&
85
86 MCNAPI ::Scripting::QuickJS::RegisteredInterface&
88 // NOLINTEND
89};
90
91} // namespace Scripting::QuickJS
MCAPI::Scripting::QuickJS::RegisteredInterface & registerInterface(::JSContext *, ::Scripting::InterfaceBinding const &interfaceBinding)
MCAPI void registerEnum(::JSContext *, ::Scripting::EnumBinding const &enumBinding)
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 void _collectAllInterfaceProperties(::std::unordered_set< ::Scripting::PropertyBinding, ::Scripting::HashPropertyBinding, ::Scripting::EqualPropertyBinding > &allProperties, ::Scripting::InterfaceBinding const &interfaceBinding)
Definition RegisteredClass.h:7
Definition RegisteredError.h:7
Definition RegisteredInterface.h:7
Definition JSContext.h:5
Definition ClassBinding.h:10
Definition EnumBinding.h:10
Definition EqualPropertyBinding.h:7
Definition ErrorBinding.h:10
Definition HashPropertyBinding.h:7
Definition InterfaceBinding.h:10
Definition PropertyBinding.h:10
Definition ClassRegistry.h:32
Definition ResolvedTypes.h:7
Definition TypeNameInfo.h:7
Definition ctx.h:5
Definition Alias.h:14