LeviLamina
Loading...
Searching...
No Matches
ModuleBindingBuilder.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/scripting/binding_type/EnumBinding.h"
7
8// auto generated forward declare list
9// clang-format off
10namespace Scripting { class Release; }
11namespace Scripting { class RuntimeConditions; }
12namespace Scripting { class TypeMapBuilder; }
13namespace Scripting { struct ClassBinding; }
14namespace Scripting { struct ConstantFactory; }
15namespace Scripting { struct EnumBinding; }
16namespace Scripting { struct ErrorBinding; }
17namespace Scripting { struct FunctionBinding; }
18namespace Scripting { struct InterfaceBinding; }
19namespace Scripting { struct ModuleBinding; }
20namespace Scripting { struct ModuleDescriptor; }
21namespace Scripting { struct ObjectFactory; }
22namespace Scripting { struct TaggedBinding; }
23namespace Scripting { struct TypeMapData; }
24namespace Scripting { struct UUID; }
25namespace Scripting { struct Version; }
26// clang-format on
27
28namespace Scripting {
29
31public:
32 // member variables
33 // NOLINTBEGIN
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
42
43public:
44 // member functions
45 // NOLINTBEGIN
46 MCAPI
47 ModuleBindingBuilder(::Scripting::UUID const& id, ::std::string const& name, ::Scripting::Version const& version);
48
49 MCAPI bool _allowed(
50 ::std::vector<::Scripting::Release> const& releases,
51 bool allowUntagged,
52 ::std::vector<::std::string> const& additionalTags
53 ) const;
54
55 MCAPI ::std::vector<::Scripting::ClassBinding> _filterClassBindings(
56 ::std::vector<::Scripting::ClassBinding> const& classBindings,
57 bool allowUntagged,
58 ::std::vector<::std::string> const& additionalTags
59 ) const;
60
61 MCAPI ::std::vector<::Scripting::EnumBinding> _filterEnumBindings(
62 ::std::vector<::Scripting::EnumBinding> const& enumBindings,
63 bool allowUntagged,
64 ::std::vector<::std::string> const& additionalTags
65 ) const;
66
67 MCAPI ::std::vector<::Scripting::EnumBinding::EnumValue> _filterEnumValueMap(
68 ::std::vector<::Scripting::ConstantFactory> const& filteredConstants,
69 ::std::vector<::Scripting::EnumBinding::EnumValue> const& valueMap
70 ) const;
71
72 MCAPI ::std::vector<::Scripting::ErrorBinding> _filterErrorBindings(
73 ::std::vector<::Scripting::ErrorBinding> const& errorBindings,
74 bool allowUnreleased,
75 ::std::vector<::std::string> const& allowedTags
76 ) const;
77
78 MCAPI ::std::vector<::Scripting::InterfaceBinding> _filterInterfaceBindings(
79 ::std::vector<::Scripting::InterfaceBinding> const& interfaceBindings,
80 bool allowUntagged,
81 ::std::vector<::std::string> const& additionalTags
82 ) const;
83
84 MCAPI ::std::vector<::Scripting::TypeMapData> _filterTypeMaps(
85 ::std::vector<::Scripting::TypeMapData> const& typeMaps,
86 bool allowUntagged,
87 ::std::vector<::std::string> const& additionalTags
88 ) const;
89
90 MCAPI ::std::vector<::Scripting::ClassBinding>
91 _orderClassBindingsByDependency(::std::vector<::Scripting::ClassBinding>& unorderedBindings) const;
92
93 MCAPI ::Scripting::ModuleBinding build(
94 bool allowUntagged,
95 ::std::vector<::std::string> const& additionalTags,
96 ::Scripting::RuntimeConditions const& currentRuntimeConditions
97 );
98
99 MCAPI ::Scripting::ModuleBindingBuilder& classBinding(::Scripting::ClassBinding&& classBinding);
100
101 MCAPI ::Scripting::ModuleBindingBuilder& createTypeMap(::Scripting::TypeMapBuilder& typeMapBuilder);
102
103 MCAPI ::Scripting::ModuleBindingBuilder& enumBinding(::Scripting::EnumBinding&& enumBinding);
104
105 MCAPI ::Scripting::ModuleBindingBuilder& errorBinding(::Scripting::ErrorBinding&& errorBinding);
106
107 MCAPI ::Scripting::ModuleDescriptor getModuleDescriptor() const;
108
109 MCAPI ::Scripting::ModuleBindingBuilder& interfaceBinding(::Scripting::InterfaceBinding&& interfaceBinding);
110
111 MCAPI ~ModuleBindingBuilder();
112 // NOLINTEND
113
114public:
115 // static functions
116 // NOLINTBEGIN
117 MCAPI static bool _assertClassMemberSymbolDoesntExist(
118 ::Scripting::ClassBinding const& classBinding,
119 ::std::string const& name,
120 ::Scripting::TaggedBinding const& binding
121 );
122
123 MCAPI static bool _assertEnumMemberSymbolDoesntExist(
124 ::Scripting::EnumBinding const& enumBinding,
125 ::std::string const& name,
126 ::Scripting::TaggedBinding const& binding
127 );
128
129 MCAPI static bool _assertModuleMemberSymbolDoesntExist(
130 ::Scripting::ModuleBinding const& moduleBinding,
131 ::std::string const& name,
132 ::Scripting::TaggedBinding const& binding
133 );
134
135 MCAPI static void _validateClassConstructors(::Scripting::ModuleBinding const& moduleBinding);
136
137 MCAPI static void _validateModuleNames(::Scripting::ModuleBinding const& moduleBinding);
138 // NOLINTEND
139
140public:
141 // static variables
142 // NOLINTBEGIN
143 MCAPI static ::Scripting::ConstantFactory& mEmptyConstantFactory();
144
145 MCAPI static ::Scripting::FunctionBinding& mEmptyFunctionBinding();
146
147 MCAPI static ::Scripting::ObjectFactory& mEmptyObjectFactory();
148 // NOLINTEND
149
150public:
151 // constructor thunks
152 // NOLINTBEGIN
153 MCAPI void* $ctor(::Scripting::UUID const& id, ::std::string const& name, ::Scripting::Version const& version);
154 // NOLINTEND
155
156public:
157 // destructor thunk
158 // NOLINTBEGIN
159 MCAPI void $dtor();
160 // NOLINTEND
161};
162
163} // namespace Scripting
Definition ModuleBindingBuilder.h:30
Definition RuntimeConditions.h:12
Definition TypeMapBuilder.h:15
Definition ClassBinding.h:19
Definition EnumBinding.h:15
Definition ErrorBinding.h:15
Definition InterfaceBinding.h:16
Definition ModuleBinding.h:7
Definition TaggedBinding.h:13
Definition UUID.h:7
Definition Version.h:7
Definition Alias.h:14