1mod std_string;
71pub use std_string::*;
72
73mod std_array;
74pub use std_array::*;
75
76mod std_deque;
77pub use std_deque::*;
78
79mod std_vector;
80pub use std_vector::*;
81
82mod std_stack;
83pub use std_stack::*;
84
85mod std_queue;
86pub use std_queue::*;
87
88mod std_list;
89pub use std_list::*;
90
91mod std_forward_list;
92pub use std_forward_list::*;
93
94mod std_set;
95pub use std_set::*;
96
97mod std_unordered_set;
98pub use std_unordered_set::*;
99
100mod std_map;
101pub use std_map::*;
102
103mod std_unordered_map;
104pub use std_unordered_map::*;
105
106hicc::import_lib! {
107 #![link_name = "hicc_std_string"]
108
109 hicc::cpp! {
110 #include <hicc/std/string.hpp>
111 }
112
113 class string;
114
115 #[cpp(func = "std::unique_ptr<std::string> hicc::make_unique<std::string>()")]
116 fn string_new() -> string;
117
118 #[cpp(func = "std::unique_ptr<std::string> hicc::make_unique<std::string, const char*>(const char* &&)")]
119 unsafe fn string_with_cstr(s: *const i8) -> string;
120
121 #[cpp(func = "std::unique_ptr<std::string> hicc::make_unique<std::string, const char*, size_t>(const char* &&, size_t&&)")]
122 unsafe fn string_with_buf(s: *const u8, len: usize) -> string;
123
124 #[cpp(func = "std::unique_ptr<std::u16string> hicc::make_unique<std::u16string>()")]
125 fn u16string_new() -> u16string;
126
127 #[cpp(func = "std::unique_ptr<std::u16string> hicc::make_unique<std::u16string, const char16_t*, size_t>(const char16_t* &&, size_t&&)")]
128 unsafe fn u16string_with_buf(s: *const u16, len: usize) -> u16string;
129
130 #[cpp(func = "std::unique_ptr<std::u32string> hicc::make_unique<std::u32string>()")]
131 fn u32string_new() -> u32string;
132
133 #[cpp(func = "std::unique_ptr<std::u32string> hicc::make_unique<std::u32string, const char32_t*, size_t>(const char32_t* &&, size_t&&)")]
134 unsafe fn u32string_with_buf(s: *const u32, len: usize) -> u32string;
135}
136
137#[cfg(feature = "test")]
138hicc::import_lib! {
139 #![link_name = "hicc_std_test"]
140 hicc::cpp! {
141 #include <hicc/std/array.hpp>
142 #include <hicc/std/deque.hpp>
143 #include <hicc/std/vector.hpp>
144 #include <hicc/std/stack.hpp>
145 #include <hicc/std/queue.hpp>
146 #include <hicc/std/list.hpp>
147 #include <hicc/std/forward_list.hpp>
148 #include <hicc/std/set.hpp>
149 #include <hicc/std/map.hpp>
150 #include <hicc/std/unordered_set.hpp>
151 #include <hicc/std/unordered_map.hpp>
152 }
153 class string;
154
155 pub class ArrayInt = array<hicc::Pod<i32>>;
157 #[cpp(func = "std::unique_ptr<std::array<int, 10>> hicc::make_unique<std::array<int, 10>>()")]
159 #[member(class = ArrayInt, method = new_10)]
160 pub fn array_int_10_new() -> ArrayInt;
161 pub class ArrayString = array<string>;
163 #[cpp(func = "std::unique_ptr<std::array<std::string, 10>> hicc::make_unique<std::array<std::string, 10>>()")]
165 #[member(class = ArrayString, method = new_10)]
166 pub fn array_string_10_new() -> ArrayString;
167
168
169
170 pub class DequeInt = deque<hicc::Pod<i32>>;
172 #[cpp(func = "std::unique_ptr<std::deque<int>> hicc::make_unique<std::deque<int>>()")]
173 #[member(class = DequeInt, method = new)]
174 pub fn deque_int_new() -> DequeInt;
175 pub class DequeString = deque<string>;
177 #[cpp(func = "std::unique_ptr<std::deque<std::string>> hicc::make_unique<std::deque<std::string>>()")]
178 #[member(class = DequeString, method = new)]
179 pub fn deque_string_new() -> DequeString;
180
181 pub class VecInt = vector<hicc::Pod<i32>>;
183 #[cpp(func = "std::unique_ptr<std::vector<int>> hicc::make_unique<std::vector<int>>()")]
184 #[member(class = VecInt, method = new)]
185 pub fn vec_int_new() -> VecInt;
186
187 pub class VecString = vector<string>;
189 #[cpp(func = "std::unique_ptr<std::vector<std::string>> hicc::make_unique<std::vector<std::string>>()")]
190 #[member(class = VecString, method = new)]
191 pub fn vec_string_new() -> VecString;
192
193 pub class VecVecString = vector<vector<string>>;
195 #[cpp(func = "std::unique_ptr<std::vector<std::vector<std::string>>> hicc::make_unique<std::vector<std::vector<std::string>>>()")]
196 #[member(class = VecVecString, method = new)]
197 pub fn vec_vec_string_new() -> VecVecString;
198
199 #[cpp(func = "std::unique_ptr<std::vector<bool>> hicc::make_unique<std::vector<bool>>()")]
200 #[member(class = VecBool, method = new)]
201 pub fn vec_bool_new() -> VecBool;
202
203 pub class StackInt = stack<hicc::Pod<i32>>;
205 #[cpp(func = "std::unique_ptr<std::stack<int>> hicc::make_unique<std::stack<int>>()")]
206 #[member(class = StackInt, method = new)]
207 pub fn stack_int_new() -> StackInt;
208 pub class StackString = stack<string>;
210 #[cpp(func = "std::unique_ptr<std::stack<std::string>> hicc::make_unique<std::stack<std::string>>()")]
211 #[member(class = StackString, method = new)]
212 pub fn stack_string_new() -> StackString;
213
214 pub class QueueInt = queue<hicc::Pod<i32>>;
216 #[cpp(func = "std::unique_ptr<std::queue<int>> hicc::make_unique<std::queue<int>>()")]
217 #[member(class = QueueInt, method = new)]
218 pub fn queue_int_new() -> QueueInt;
219
220 pub class QueueString = queue<string>;
222 #[cpp(func = "std::unique_ptr<std::queue<std::string>> hicc::make_unique<std::queue<std::string>>()")]
223 #[member(class = QueueString, method = new)]
224 pub fn queue_string_new() -> QueueString;
225
226 pub class PriorityQueueInt = priority_queue<hicc::Pod<i32>>;
228 #[cpp(func = "std::unique_ptr<std::priority_queue<int>> hicc::make_unique<std::priority_queue<int>>()")]
229 #[member(class = PriorityQueueInt, method = new)]
230 pub fn priority_queue_int_new() -> PriorityQueueInt;
231
232 pub class ListInt = list<hicc::Pod<i32>>;
234 #[cpp(func = "std::unique_ptr<std::list<int>> hicc::make_unique<std::list<int>>()")]
235 #[member(class = ListInt, method = new)]
236 pub fn list_int_new() -> ListInt;
237 pub class ListString = list<string>;
239 #[cpp(func = "std::unique_ptr<std::list<std::string>> hicc::make_unique<std::list<std::string>>()")]
240 #[member(class = ListString, method = new)]
241 pub fn list_string_new() -> ListString;
242
243 pub class ForwardListInt = forward_list<hicc::Pod<i32>>;
245 #[cpp(func = "std::unique_ptr<std::forward_list<int>> hicc::make_unique<std::forward_list<int>>()")]
246 #[member(class = ForwardListInt, method = new)]
247 pub fn forward_list_int_new() -> ForwardListInt;
248
249 pub class ForwardListString = forward_list<string>;
251 #[cpp(func = "std::unique_ptr<std::forward_list<std::string>> hicc::make_unique<std::forward_list<std::string>>()")]
252 #[member(class = ForwardListString, method = new)]
253 pub fn forward_list_string_new() -> ForwardListString;
254
255 pub class SetInt = set<hicc::Pod<i32>>;
257 pub class SetString = set<string>;
259 pub class MultiSetInt = multiset<hicc::Pod<i32>>;
261 pub class MultiSetString = multiset<string>;
263
264 #[cpp(func = "std::unique_ptr<std::set<int>> hicc::make_unique<std::set<int>>()")]
265 #[member(class = SetInt, method = new)]
266 pub fn set_int_new() -> SetInt;
267 #[cpp(func = "std::unique_ptr<std::set<std::string>> hicc::make_unique<std::set<std::string>>()")]
268 #[member(class = SetString, method = new)]
269 pub fn set_string_new() -> SetString;
270
271 #[cpp(func = "std::unique_ptr<std::multiset<int>> hicc::make_unique<std::multiset<int>>()")]
272 #[member(class = MultiSetInt, method = new)]
273 pub fn multiset_int_new() -> MultiSetInt;
274 #[cpp(func = "std::unique_ptr<std::multiset<std::string>> hicc::make_unique<std::multiset<std::string>>()")]
275 #[member(class = MultiSetString, method = new)]
276 pub fn multiset_string_new() -> MultiSetString;
277
278 pub class MapStringString = map<string, string>;
280 pub class MapStringInt = map<string, hicc::Pod<i32>>;
282 pub class MapIntString = map<hicc::Pod<i32>, string>;
284 pub class MapIntInt = map<hicc::Pod<i32>, hicc::Pod<i32>>;
286
287 #[member(class = MapStringString, method = new)]
288 #[cpp(func = "std::map<std::string, std::string> hicc::make_constructor<std::map<std::string, std::string>>()")]
289 pub fn map_string_string_new() -> MapStringString;
290 #[member(class = MapStringInt, method = new)]
291 #[cpp(func = "std::map<std::string, int> hicc::make_constructor<std::map<std::string, int>>()")]
292 pub fn map_string_int_new() -> MapStringInt;
293 #[member(class = MapIntString, method = new)]
294 #[cpp(func = "std::map<int, std::string> hicc::make_constructor<std::map<int, std::string>>()")]
295 pub fn map_int_string_new() -> MapIntString;
296 #[member(class = MapIntInt, method = new)]
297 #[cpp(func = "std::map<int, int> hicc::make_constructor<std::map<int, int>>()")]
298 pub fn map_int_int_new() -> MapIntInt;
299
300 pub class MultiMapStringString = multimap<string, string>;
302 pub class MultiMapStringInt = multimap<string, hicc::Pod<i32>>;
304 pub class MultiMapIntString = multimap<hicc::Pod<i32>, string>;
306 pub class MultiMapIntInt = multimap<hicc::Pod<i32>, hicc::Pod<i32>>;
308
309 #[member(class = MultiMapStringString, method = new)]
310 #[cpp(func = "std::multimap<std::string, std::string> hicc::make_constructor<std::multimap<std::string, std::string>>()")]
311 pub fn multimap_string_string_new() -> MultiMapStringString;
312 #[member(class = MultiMapStringInt, method = new)]
313 #[cpp(func = "std::multimap<std::string, int> hicc::make_constructor<std::multimap<std::string, int>>()")]
314 pub fn multimap_string_int_new() -> MultiMapStringInt;
315 #[member(class = MultiMapIntString, method = new)]
316 #[cpp(func = "std::multimap<int, std::string> hicc::make_constructor<std::multimap<int, std::string>>()")]
317 pub fn multimap_int_string_new() -> MultiMapIntString;
318 #[member(class = MultiMapIntInt, method = new)]
319 #[cpp(func = "std::multimap<int, int> hicc::make_constructor<std::multimap<int, int>>()")]
320 pub fn multimap_int_int_new() -> MultiMapIntInt;
321
322 pub class UnorderedSetInt = unordered_set<hicc::Pod<i32>>;
324 pub class UnorderedSetString = unordered_set<string>;
326 pub class UnorderedMultiSetInt = unordered_multiset<hicc::Pod<i32>>;
328 pub class UnorderedMultiSetString = unordered_multiset<string>;
330
331 #[member(class = UnorderedSetInt, method = new)]
332 #[cpp(func = "std::unordered_set<int> hicc::make_constructor<std::unordered_set<int>>()")]
333 pub fn unordered_set_int_new() -> UnorderedSetInt;
334 #[member(class = UnorderedSetString, method = new)]
335 #[cpp(func = "std::unordered_set<std::string> hicc::make_constructor<std::unordered_set<std::string>>()")]
336 pub fn unordered_set_string_new() -> UnorderedSetString;
337
338 #[member(class = UnorderedMultiSetInt, method = new)]
339 #[cpp(func = "std::unordered_multiset<int> hicc::make_constructor<std::unordered_multiset<int>>()")]
340 pub fn unordered_multiset_int_new() -> UnorderedMultiSetInt;
341 #[member(class = UnorderedMultiSetString, method = new)]
342 #[cpp(func = "std::unordered_multiset<std::string> hicc::make_constructor<std::unordered_multiset<std::string>>()")]
343 pub fn unordered_multiset_string_new() -> UnorderedMultiSetString;
344
345 pub class UnorderedMapStringString = unordered_map<string, string>;
347 pub class UnorderedMapStringInt = unordered_map<string, hicc::Pod<i32>>;
349 pub class UnorderedMapIntString = unordered_map<hicc::Pod<i32>, string>;
351 pub class UnorderedMapIntInt = unordered_map<hicc::Pod<i32>, hicc::Pod<i32>>;
353
354 #[member(class = UnorderedMapStringString, method = new)]
355 #[cpp(func = "std::unordered_map<std::string, std::string> hicc::make_constructor<std::unordered_map<std::string, std::string>>()")]
356 pub fn unordered_map_string_string_new() -> UnorderedMapStringString;
357 #[member(class = UnorderedMapStringInt, method = new)]
358 #[cpp(func = "std::unordered_map<std::string, int> hicc::make_constructor<std::unordered_map<std::string, int>>()")]
359 pub fn unordered_map_string_int_new() -> UnorderedMapStringInt;
360 #[member(class = UnorderedMapIntString, method = new)]
361 #[cpp(func = "std::unordered_map<int, std::string> hicc::make_constructor<std::unordered_map<int, std::string>>()")]
362 pub fn unordered_map_int_string_new() -> UnorderedMapIntString;
363 #[member(class = UnorderedMapIntInt, method = new)]
364 #[cpp(func = "std::unordered_map<int, int> hicc::make_constructor<std::unordered_map<int, int>>()")]
365 pub fn unordered_map_int_int_new() -> UnorderedMapIntInt;
366
367 pub class UnorderedMultiMapStringString = unordered_multimap<string, string>;
369 pub class UnorderedMultiMapStringInt = unordered_multimap<string, hicc::Pod<i32>>;
371 pub class UnorderedMultiMapIntString = unordered_multimap<hicc::Pod<i32>, string>;
373 pub class UnorderedMultiMapIntInt = unordered_multimap<hicc::Pod<i32>, hicc::Pod<i32>>;
375
376 #[member(class = UnorderedMultiMapStringString, method = new)]
377 #[cpp(func = "std::unordered_multimap<std::string, std::string> hicc::make_constructor<std::unordered_multimap<std::string, std::string>>()")]
378 pub fn unordered_multimap_string_string_new() -> UnorderedMultiMapStringString;
379 #[member(class = UnorderedMultiMapStringInt, method = new)]
380 #[cpp(func = "std::unordered_multimap<std::string, int> hicc::make_constructor<std::unordered_multimap<std::string, int>>()")]
381 pub fn unordered_multimap_string_int_new() -> UnorderedMultiMapStringInt;
382 #[member(class = UnorderedMultiMapIntString, method = new)]
383 #[cpp(func = "std::unordered_multimap<int, std::string> hicc::make_constructor<std::unordered_multimap<int, std::string>>()")]
384 pub fn unordered_multimap_int_string_new() -> UnorderedMultiMapIntString;
385 #[member(class = UnorderedMultiMapIntInt, method = new)]
386 #[cpp(func = "std::unordered_multimap<int, int> hicc::make_constructor<std::unordered_multimap<int, int>>()")]
387 pub fn unordered_multimap_int_int_new() -> UnorderedMultiMapIntInt;
388}