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 ModuleDependency; }
21namespace Scripting { struct ModuleDescriptor; }
22namespace Scripting { struct ObjectFactory; }
23namespace Scripting { struct TaggedBinding; }
24namespace Scripting { struct TypeMapData; }
25namespace Scripting { struct Version; }
26namespace mce { class UUID; }
27// clang-format on
28
29namespace Scripting {
30
31class ModuleBindingBuilder {
32public:
33 // ModuleBindingBuilder inner types declare
34 // clang-format off
35 struct BuilderData;
36 // clang-format on
37
38 // ModuleBindingBuilder inner types define
39 struct BuilderData {
40 public:
41 // member variables
42 // NOLINTBEGIN
55 // NOLINTEND
56
57 public:
58 // prevent constructor by default
59 BuilderData& operator=(BuilderData const&);
60 BuilderData(BuilderData const&);
61 BuilderData();
62
63 public:
64 // member functions
65 // NOLINTBEGIN
66 MCNAPI ::Scripting::ModuleBindingBuilder::BuilderData&
68
69 MCNAPI ~BuilderData();
70 // NOLINTEND
71
72 public:
73 // destructor thunk
74 // NOLINTBEGIN
75 MCNAPI void $dtor();
76 // NOLINTEND
77 };
78
79public:
80 // member variables
81 // NOLINTBEGIN
83 // NOLINTEND
84
85public:
86 // prevent constructor by default
87 ModuleBindingBuilder& operator=(ModuleBindingBuilder const&);
88 ModuleBindingBuilder(ModuleBindingBuilder const&);
89 ModuleBindingBuilder();
90
91public:
92 // member functions
93 // NOLINTBEGIN
95 ::mce::UUID uuid,
96 ::std::string const& name,
97 ::Scripting::Version const& version,
98 bool importRestricted
99 );
100
101 MCNAPI bool _allowed(
102 ::std::vector<::Scripting::Release> const& releases,
103 bool allowUntagged,
104 ::std::vector<::std::string> const& additionalTags
105 ) const;
106
107 MCNAPI ::std::vector<::Scripting::ClassBinding> _filterClassBindings(
108 ::std::vector<::Scripting::ClassBinding> const& classBindings,
109 bool allowUntagged,
110 ::std::vector<::std::string> const& additionalTags
111 ) const;
112
113 MCNAPI ::std::vector<::Scripting::EnumBinding> _filterEnumBindings(
114 ::std::vector<::Scripting::EnumBinding> const& enumBindings,
115 bool allowUntagged,
116 ::std::vector<::std::string> const& additionalTags
117 ) const;
118
119 MCNAPI ::std::vector<::Scripting::EnumBinding::EnumValue> _filterEnumValueMap(
120 ::std::vector<::Scripting::ConstantFactory> const& filteredConstants,
121 ::std::vector<::Scripting::EnumBinding::EnumValue> const& valueMap
122 ) const;
123
124 MCNAPI ::std::vector<::Scripting::ErrorBinding> _filterErrorBindings(
125 ::std::vector<::Scripting::ErrorBinding> const& errorBindings,
126 bool allowUnreleased,
127 ::std::vector<::std::string> const& allowedTags
128 ) const;
129
130 MCNAPI ::std::vector<::Scripting::InterfaceBinding> _filterInterfaceBindings(
131 ::std::vector<::Scripting::InterfaceBinding> const& interfaceBindings,
132 bool allowUntagged,
133 ::std::vector<::std::string> const& additionalTags
134 ) const;
135
136 MCNAPI ::std::vector<::Scripting::TypeMapData> _filterTypeMaps(
137 ::std::vector<::Scripting::TypeMapData> const& typeMaps,
138 bool allowUntagged,
139 ::std::vector<::std::string> const& additionalTags
140 ) const;
141
142 MCNAPI ::std::vector<::Scripting::ClassBinding>
143 _orderClassBindingsByDependency(::std::vector<::Scripting::ClassBinding>& unorderedBindings) const;
144
145 MCNAPI ::Scripting::ModuleBinding build(
146 bool allowUntagged,
147 ::std::vector<::std::string> const& additionalTags,
148 ::Scripting::RuntimeConditions const& currentRuntimeConditions
149 );
150
151 MCNAPI ::Scripting::ModuleBindingBuilder& classBinding(::Scripting::ClassBinding&& classBinding);
152
153 MCNAPI ::Scripting::ModuleBindingBuilder& createTypeMap(::Scripting::TypeMapBuilder& typeMapBuilder);
154
155 MCNAPI ::Scripting::ModuleBindingBuilder& enumBinding(::Scripting::EnumBinding&& enumBinding);
156
157 MCNAPI ::Scripting::ModuleBindingBuilder& errorBinding(::Scripting::ErrorBinding&& errorBinding);
158
159 MCNAPI ::std::vector<::Scripting::ModuleDependency> getDependencies() const;
160
161 MCNAPI ::Scripting::ModuleDescriptor getModuleDescriptor() const;
162
163 MCNAPI ::Scripting::ModuleBindingBuilder& interfaceBinding(::Scripting::InterfaceBinding&& interfaceBinding);
164
165 MCNAPI void setImportRestricted();
166 // NOLINTEND
167
168public:
169 // static functions
170 // NOLINTBEGIN
172 ::Scripting::ModuleBinding& moduleBinding,
173 ::Scripting::RuntimeConditions const& currentRuntimeConditions
174 );
175
178 ::std::string const& name,
179 ::Scripting::TaggedBinding const& binding
180 );
181
184 ::std::string const& name,
185 ::Scripting::TaggedBinding const& binding
186 );
187
189 ::Scripting::ModuleBinding const& moduleBinding,
190 ::std::string const& name,
191 ::Scripting::TaggedBinding const& binding
192 );
193
194 MCNAPI static void _validateClassConstructors(::Scripting::ModuleBinding const& moduleBinding);
195
196 MCNAPI static void _validateModuleNames(::Scripting::ModuleBinding const& moduleBinding);
197 // NOLINTEND
198
199public:
200 // static variables
201 // NOLINTBEGIN
202 MCNAPI static ::Scripting::ConstantFactory& mEmptyConstantFactory();
203
204 MCNAPI static ::Scripting::FunctionBinding& mEmptyFunctionBinding();
205
206 MCNAPI static ::Scripting::ObjectFactory& mEmptyObjectFactory();
207 // NOLINTEND
208
209public:
210 // constructor thunks
211 // NOLINTBEGIN
212 MCNAPI void*
213 $ctor(::mce::UUID uuid, ::std::string const& name, ::Scripting::Version const& version, bool importRestricted);
214 // NOLINTEND
215};
216
217} // namespace Scripting
MCAPI ::std::vector<::Scripting::EnumBinding > _filterEnumBindings(::std::vector<::Scripting::EnumBinding > const &enumBindings, bool allowUntagged, ::std::vector<::std::string > const &additionalTags) const
MCAPI::Scripting::ModuleBindingBuilder & enumBinding(::Scripting::EnumBinding &&enumBinding)
MCAPI::Scripting::ModuleBindingBuilder & createTypeMap(::Scripting::TypeMapBuilder &typeMapBuilder)
MCAPI void * $ctor(::mce::UUID uuid, ::std::string const &name, ::Scripting::Version const &version, bool importRestricted)
static MCAPI bool _assertEnumMemberSymbolDoNotExist(::Scripting::EnumBinding const &enumBinding, ::std::string const &name, ::Scripting::TaggedBinding const &binding)
static MCAPI bool _assertModuleMemberSymbolDoNotExist(::Scripting::ModuleBinding const &moduleBinding, ::std::string const &name, ::Scripting::TaggedBinding const &binding)
MCAPI bool _allowed(::std::vector<::Scripting::Release > const &releases, bool allowUntagged, ::std::vector<::std::string > const &additionalTags) const
static MCAPI ::Scripting::ConstantFactory & mEmptyConstantFactory()
static MCAPI bool _assertClassMemberSymbolDoNotExist(::Scripting::ClassBinding const &classBinding, ::std::string const &name, ::Scripting::TaggedBinding const &binding)
MCAPI::Scripting::ModuleBindingBuilder & errorBinding(::Scripting::ErrorBinding &&errorBinding)
MCAPI ::std::vector<::Scripting::ClassBinding > _filterClassBindings(::std::vector<::Scripting::ClassBinding > const &classBindings, bool allowUntagged, ::std::vector<::std::string > const &additionalTags) const
MCAPI::Scripting::ModuleBindingBuilder & classBinding(::Scripting::ClassBinding &&classBinding)
MCAPI ModuleBindingBuilder(::mce::UUID uuid, ::std::string const &name, ::Scripting::Version const &version, bool importRestricted)
MCAPI ::std::vector<::Scripting::TypeMapData > _filterTypeMaps(::std::vector<::Scripting::TypeMapData > const &typeMaps, bool allowUntagged, ::std::vector<::std::string > const &additionalTags) const
MCAPI ::std::vector<::Scripting::EnumBinding::EnumValue > _filterEnumValueMap(::std::vector<::Scripting::ConstantFactory > const &filteredConstants, ::std::vector<::Scripting::EnumBinding::EnumValue > const &valueMap) const
static MCAPI void _validateClassConstructors(::Scripting::ModuleBinding const &moduleBinding)
static MCAPI ::Scripting::ObjectFactory & mEmptyObjectFactory()
MCAPI ::std::vector<::Scripting::ErrorBinding > _filterErrorBindings(::std::vector<::Scripting::ErrorBinding > const &errorBindings, bool allowUnreleased, ::std::vector<::std::string > const &allowedTags) const
MCAPI::Scripting::ModuleDescriptor getModuleDescriptor() const
MCAPI ::std::vector<::Scripting::ClassBinding > _orderClassBindingsByDependency(::std::vector<::Scripting::ClassBinding > &unorderedBindings) const
MCAPI::Scripting::ModuleBindingBuilder & interfaceBinding(::Scripting::InterfaceBinding &&interfaceBinding)
MCAPI ::std::vector<::Scripting::ModuleDependency > getDependencies() const
static MCAPI void _validateModuleNames(::Scripting::ModuleBinding const &moduleBinding)
static MCAPI ::Scripting::FunctionBinding & mEmptyFunctionBinding()
MCAPI::Scripting::ModuleBinding build(bool allowUntagged, ::std::vector<::std::string > const &additionalTags, ::Scripting::RuntimeConditions const &currentRuntimeConditions)
static MCAPI void _applyMissingRuntimeConditions(::Scripting::ModuleBinding &moduleBinding, ::Scripting::RuntimeConditions const &currentRuntimeConditions)
MCAPI ::std::vector<::Scripting::InterfaceBinding > _filterInterfaceBindings(::std::vector<::Scripting::InterfaceBinding > const &interfaceBindings, bool allowUntagged, ::std::vector<::std::string > const &additionalTags) const
Definition Release.h:16
Definition RuntimeConditions.h:12
Definition TypeMapBuilder.h:15
Definition UUID.h:7
Definition ClassBinding.h:19
Definition ConstantFactory.h:15
Definition EnumBinding.h:15
Definition ErrorBinding.h:16
Definition FunctionBinding.h:10
Definition InterfaceBinding.h:16
Definition ModuleBindingBuilder.h:39
MCAPI::Scripting::ModuleBindingBuilder::BuilderData & operator=(::Scripting::ModuleBindingBuilder::BuilderData &&)
Definition ModuleBinding.h:23
Definition ModuleDependency.h:14
Definition ModuleDescriptor.h:7
Definition ObjectFactory.h:16
Definition TaggedBinding.h:13
Definition TypeMapData.h:10
Definition Version.h:7
Definition Alias.h:14