mod std_string;
pub use std_string::*;
mod std_array;
pub use std_array::*;
mod std_deque;
pub use std_deque::*;
mod std_vector;
pub use std_vector::*;
mod std_stack;
pub use std_stack::*;
mod std_queue;
pub use std_queue::*;
mod std_list;
pub use std_list::*;
mod std_forward_list;
pub use std_forward_list::*;
mod std_set;
pub use std_set::*;
mod std_unordered_set;
pub use std_unordered_set::*;
mod std_map;
pub use std_map::*;
mod std_unordered_map;
pub use std_unordered_map::*;
hicc::import_lib! {
#![link_name = "hicc_std_string"]
hicc::cpp! {
#include <hicc/std/string.hpp>
}
class string;
#[cpp(func = "std::unique_ptr<std::string> hicc::make_unique<std::string>()")]
fn string_new() -> string;
#[cpp(func = "std::unique_ptr<std::string> hicc::make_unique<std::string, const char*>(const char* &&)")]
unsafe fn string_with_cstr(s: *const i8) -> string;
#[cpp(func = "std::unique_ptr<std::string> hicc::make_unique<std::string, const char*, size_t>(const char* &&, size_t&&)")]
unsafe fn string_with_buf(s: *const u8, len: usize) -> string;
#[cpp(func = "std::unique_ptr<std::u16string> hicc::make_unique<std::u16string>()")]
fn u16string_new() -> u16string;
#[cpp(func = "std::unique_ptr<std::u16string> hicc::make_unique<std::u16string, const char16_t*, size_t>(const char16_t* &&, size_t&&)")]
unsafe fn u16string_with_buf(s: *const u16, len: usize) -> u16string;
#[cpp(func = "std::unique_ptr<std::u32string> hicc::make_unique<std::u32string>()")]
fn u32string_new() -> u32string;
#[cpp(func = "std::unique_ptr<std::u32string> hicc::make_unique<std::u32string, const char32_t*, size_t>(const char32_t* &&, size_t&&)")]
unsafe fn u32string_with_buf(s: *const u32, len: usize) -> u32string;
}
#[cfg(feature = "test")]
hicc::import_lib! {
#![link_name = "hicc_std_test"]
hicc::cpp! {
#include <hicc/std/array.hpp>
#include <hicc/std/deque.hpp>
#include <hicc/std/vector.hpp>
#include <hicc/std/stack.hpp>
#include <hicc/std/queue.hpp>
#include <hicc/std/list.hpp>
#include <hicc/std/forward_list.hpp>
#include <hicc/std/set.hpp>
#include <hicc/std/map.hpp>
#include <hicc/std/unordered_set.hpp>
#include <hicc/std/unordered_map.hpp>
}
class string;
pub class ArrayInt = array<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::array<int, 10>> hicc::make_unique<std::array<int, 10>>()")]
#[member(class = ArrayInt, method = new_10)]
pub fn array_int_10_new() -> ArrayInt;
pub class ArrayString = array<string>;
#[cpp(func = "std::unique_ptr<std::array<std::string, 10>> hicc::make_unique<std::array<std::string, 10>>()")]
#[member(class = ArrayString, method = new_10)]
pub fn array_string_10_new() -> ArrayString;
pub class DequeInt = deque<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::deque<int>> hicc::make_unique<std::deque<int>>()")]
#[member(class = DequeInt, method = new)]
pub fn deque_int_new() -> DequeInt;
pub class DequeString = deque<string>;
#[cpp(func = "std::unique_ptr<std::deque<std::string>> hicc::make_unique<std::deque<std::string>>()")]
#[member(class = DequeString, method = new)]
pub fn deque_string_new() -> DequeString;
pub class VecInt = vector<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::vector<int>> hicc::make_unique<std::vector<int>>()")]
#[member(class = VecInt, method = new)]
pub fn vec_int_new() -> VecInt;
pub class VecString = vector<string>;
#[cpp(func = "std::unique_ptr<std::vector<std::string>> hicc::make_unique<std::vector<std::string>>()")]
#[member(class = VecString, method = new)]
pub fn vec_string_new() -> VecString;
pub class VecVecString = vector<vector<string>>;
#[cpp(func = "std::unique_ptr<std::vector<std::vector<std::string>>> hicc::make_unique<std::vector<std::vector<std::string>>>()")]
#[member(class = VecVecString, method = new)]
pub fn vec_vec_string_new() -> VecVecString;
#[cpp(func = "std::unique_ptr<std::vector<bool>> hicc::make_unique<std::vector<bool>>()")]
#[member(class = VecBool, method = new)]
pub fn vec_bool_new() -> VecBool;
pub class StackInt = stack<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::stack<int>> hicc::make_unique<std::stack<int>>()")]
#[member(class = StackInt, method = new)]
pub fn stack_int_new() -> StackInt;
pub class StackString = stack<string>;
#[cpp(func = "std::unique_ptr<std::stack<std::string>> hicc::make_unique<std::stack<std::string>>()")]
#[member(class = StackString, method = new)]
pub fn stack_string_new() -> StackString;
pub class QueueInt = queue<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::queue<int>> hicc::make_unique<std::queue<int>>()")]
#[member(class = QueueInt, method = new)]
pub fn queue_int_new() -> QueueInt;
pub class QueueString = queue<string>;
#[cpp(func = "std::unique_ptr<std::queue<std::string>> hicc::make_unique<std::queue<std::string>>()")]
#[member(class = QueueString, method = new)]
pub fn queue_string_new() -> QueueString;
pub class PriorityQueueInt = priority_queue<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::priority_queue<int>> hicc::make_unique<std::priority_queue<int>>()")]
#[member(class = PriorityQueueInt, method = new)]
pub fn priority_queue_int_new() -> PriorityQueueInt;
pub class ListInt = list<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::list<int>> hicc::make_unique<std::list<int>>()")]
#[member(class = ListInt, method = new)]
pub fn list_int_new() -> ListInt;
pub class ListString = list<string>;
#[cpp(func = "std::unique_ptr<std::list<std::string>> hicc::make_unique<std::list<std::string>>()")]
#[member(class = ListString, method = new)]
pub fn list_string_new() -> ListString;
pub class ForwardListInt = forward_list<hicc::Pod<i32>>;
#[cpp(func = "std::unique_ptr<std::forward_list<int>> hicc::make_unique<std::forward_list<int>>()")]
#[member(class = ForwardListInt, method = new)]
pub fn forward_list_int_new() -> ForwardListInt;
pub class ForwardListString = forward_list<string>;
#[cpp(func = "std::unique_ptr<std::forward_list<std::string>> hicc::make_unique<std::forward_list<std::string>>()")]
#[member(class = ForwardListString, method = new)]
pub fn forward_list_string_new() -> ForwardListString;
pub class SetInt = set<hicc::Pod<i32>>;
pub class SetString = set<string>;
pub class MultiSetInt = multiset<hicc::Pod<i32>>;
pub class MultiSetString = multiset<string>;
#[cpp(func = "std::unique_ptr<std::set<int>> hicc::make_unique<std::set<int>>()")]
#[member(class = SetInt, method = new)]
pub fn set_int_new() -> SetInt;
#[cpp(func = "std::unique_ptr<std::set<std::string>> hicc::make_unique<std::set<std::string>>()")]
#[member(class = SetString, method = new)]
pub fn set_string_new() -> SetString;
#[cpp(func = "std::unique_ptr<std::multiset<int>> hicc::make_unique<std::multiset<int>>()")]
#[member(class = MultiSetInt, method = new)]
pub fn multiset_int_new() -> MultiSetInt;
#[cpp(func = "std::unique_ptr<std::multiset<std::string>> hicc::make_unique<std::multiset<std::string>>()")]
#[member(class = MultiSetString, method = new)]
pub fn multiset_string_new() -> MultiSetString;
pub class MapStringString = map<string, string>;
pub class MapStringInt = map<string, hicc::Pod<i32>>;
pub class MapIntString = map<hicc::Pod<i32>, string>;
pub class MapIntInt = map<hicc::Pod<i32>, hicc::Pod<i32>>;
#[member(class = MapStringString, method = new)]
#[cpp(func = "std::map<std::string, std::string> hicc::make_constructor<std::map<std::string, std::string>>()")]
pub fn map_string_string_new() -> MapStringString;
#[member(class = MapStringInt, method = new)]
#[cpp(func = "std::map<std::string, int> hicc::make_constructor<std::map<std::string, int>>()")]
pub fn map_string_int_new() -> MapStringInt;
#[member(class = MapIntString, method = new)]
#[cpp(func = "std::map<int, std::string> hicc::make_constructor<std::map<int, std::string>>()")]
pub fn map_int_string_new() -> MapIntString;
#[member(class = MapIntInt, method = new)]
#[cpp(func = "std::map<int, int> hicc::make_constructor<std::map<int, int>>()")]
pub fn map_int_int_new() -> MapIntInt;
pub class MultiMapStringString = multimap<string, string>;
pub class MultiMapStringInt = multimap<string, hicc::Pod<i32>>;
pub class MultiMapIntString = multimap<hicc::Pod<i32>, string>;
pub class MultiMapIntInt = multimap<hicc::Pod<i32>, hicc::Pod<i32>>;
#[member(class = MultiMapStringString, method = new)]
#[cpp(func = "std::multimap<std::string, std::string> hicc::make_constructor<std::multimap<std::string, std::string>>()")]
pub fn multimap_string_string_new() -> MultiMapStringString;
#[member(class = MultiMapStringInt, method = new)]
#[cpp(func = "std::multimap<std::string, int> hicc::make_constructor<std::multimap<std::string, int>>()")]
pub fn multimap_string_int_new() -> MultiMapStringInt;
#[member(class = MultiMapIntString, method = new)]
#[cpp(func = "std::multimap<int, std::string> hicc::make_constructor<std::multimap<int, std::string>>()")]
pub fn multimap_int_string_new() -> MultiMapIntString;
#[member(class = MultiMapIntInt, method = new)]
#[cpp(func = "std::multimap<int, int> hicc::make_constructor<std::multimap<int, int>>()")]
pub fn multimap_int_int_new() -> MultiMapIntInt;
pub class UnorderedSetInt = unordered_set<hicc::Pod<i32>>;
pub class UnorderedSetString = unordered_set<string>;
pub class UnorderedMultiSetInt = unordered_multiset<hicc::Pod<i32>>;
pub class UnorderedMultiSetString = unordered_multiset<string>;
#[member(class = UnorderedSetInt, method = new)]
#[cpp(func = "std::unordered_set<int> hicc::make_constructor<std::unordered_set<int>>()")]
pub fn unordered_set_int_new() -> UnorderedSetInt;
#[member(class = UnorderedSetString, method = new)]
#[cpp(func = "std::unordered_set<std::string> hicc::make_constructor<std::unordered_set<std::string>>()")]
pub fn unordered_set_string_new() -> UnorderedSetString;
#[member(class = UnorderedMultiSetInt, method = new)]
#[cpp(func = "std::unordered_multiset<int> hicc::make_constructor<std::unordered_multiset<int>>()")]
pub fn unordered_multiset_int_new() -> UnorderedMultiSetInt;
#[member(class = UnorderedMultiSetString, method = new)]
#[cpp(func = "std::unordered_multiset<std::string> hicc::make_constructor<std::unordered_multiset<std::string>>()")]
pub fn unordered_multiset_string_new() -> UnorderedMultiSetString;
pub class UnorderedMapStringString = unordered_map<string, string>;
pub class UnorderedMapStringInt = unordered_map<string, hicc::Pod<i32>>;
pub class UnorderedMapIntString = unordered_map<hicc::Pod<i32>, string>;
pub class UnorderedMapIntInt = unordered_map<hicc::Pod<i32>, hicc::Pod<i32>>;
#[member(class = UnorderedMapStringString, method = new)]
#[cpp(func = "std::unordered_map<std::string, std::string> hicc::make_constructor<std::unordered_map<std::string, std::string>>()")]
pub fn unordered_map_string_string_new() -> UnorderedMapStringString;
#[member(class = UnorderedMapStringInt, method = new)]
#[cpp(func = "std::unordered_map<std::string, int> hicc::make_constructor<std::unordered_map<std::string, int>>()")]
pub fn unordered_map_string_int_new() -> UnorderedMapStringInt;
#[member(class = UnorderedMapIntString, method = new)]
#[cpp(func = "std::unordered_map<int, std::string> hicc::make_constructor<std::unordered_map<int, std::string>>()")]
pub fn unordered_map_int_string_new() -> UnorderedMapIntString;
#[member(class = UnorderedMapIntInt, method = new)]
#[cpp(func = "std::unordered_map<int, int> hicc::make_constructor<std::unordered_map<int, int>>()")]
pub fn unordered_map_int_int_new() -> UnorderedMapIntInt;
pub class UnorderedMultiMapStringString = unordered_multimap<string, string>;
pub class UnorderedMultiMapStringInt = unordered_multimap<string, hicc::Pod<i32>>;
pub class UnorderedMultiMapIntString = unordered_multimap<hicc::Pod<i32>, string>;
pub class UnorderedMultiMapIntInt = unordered_multimap<hicc::Pod<i32>, hicc::Pod<i32>>;
#[member(class = UnorderedMultiMapStringString, method = new)]
#[cpp(func = "std::unordered_multimap<std::string, std::string> hicc::make_constructor<std::unordered_multimap<std::string, std::string>>()")]
pub fn unordered_multimap_string_string_new() -> UnorderedMultiMapStringString;
#[member(class = UnorderedMultiMapStringInt, method = new)]
#[cpp(func = "std::unordered_multimap<std::string, int> hicc::make_constructor<std::unordered_multimap<std::string, int>>()")]
pub fn unordered_multimap_string_int_new() -> UnorderedMultiMapStringInt;
#[member(class = UnorderedMultiMapIntString, method = new)]
#[cpp(func = "std::unordered_multimap<int, std::string> hicc::make_constructor<std::unordered_multimap<int, std::string>>()")]
pub fn unordered_multimap_int_string_new() -> UnorderedMultiMapIntString;
#[member(class = UnorderedMultiMapIntInt, method = new)]
#[cpp(func = "std::unordered_multimap<int, int> hicc::make_constructor<std::unordered_multimap<int, int>>()")]
pub fn unordered_multimap_int_int_new() -> UnorderedMultiMapIntInt;
}