1 #include "libcxx_aconfigd.hpp"
2 #include <array>
3 #include <cstddef>
4 #include <cstdint>
5 #include <memory>
6 #include <new>
7 #include <string>
8 #include <type_traits>
9 #include <utility>
10
11 namespace rust {
12 inline namespace cxxbridge1 {
13 // #include "rust/cxx.h"
14
15 struct unsafe_bitcopy_t;
16
17 #ifndef CXXBRIDGE1_RUST_STRING
18 #define CXXBRIDGE1_RUST_STRING
19 class String final {
20 public:
21 String() noexcept;
22 String(const String &) noexcept;
23 String(String &&) noexcept;
24 ~String() noexcept;
25
26 String(const std::string &);
27 String(const char *);
28 String(const char *, std::size_t);
29 String(const char16_t *);
30 String(const char16_t *, std::size_t);
31
32 static String lossy(const std::string &) noexcept;
33 static String lossy(const char *) noexcept;
34 static String lossy(const char *, std::size_t) noexcept;
35 static String lossy(const char16_t *) noexcept;
36 static String lossy(const char16_t *, std::size_t) noexcept;
37
38 String &operator=(const String &) &noexcept;
39 String &operator=(String &&) &noexcept;
40
41 explicit operator std::string() const;
42
43 const char *data() const noexcept;
44 std::size_t size() const noexcept;
45 std::size_t length() const noexcept;
46 bool empty() const noexcept;
47
48 const char *c_str() noexcept;
49
50 std::size_t capacity() const noexcept;
51 void reserve(size_t new_cap) noexcept;
52
53 using iterator = char *;
54 iterator begin() noexcept;
55 iterator end() noexcept;
56
57 using const_iterator = const char *;
58 const_iterator begin() const noexcept;
59 const_iterator end() const noexcept;
60 const_iterator cbegin() const noexcept;
61 const_iterator cend() const noexcept;
62
63 bool operator==(const String &) const noexcept;
64 bool operator!=(const String &) const noexcept;
65 bool operator<(const String &) const noexcept;
66 bool operator<=(const String &) const noexcept;
67 bool operator>(const String &) const noexcept;
68 bool operator>=(const String &) const noexcept;
69
70 void swap(String &) noexcept;
71
72 String(unsafe_bitcopy_t, const String &) noexcept;
73
74 private:
75 struct lossy_t;
76 String(lossy_t, const char *, std::size_t) noexcept;
77 String(lossy_t, const char16_t *, std::size_t) noexcept;
swap(String & lhs,String & rhs)78 friend void swap(String &lhs, String &rhs) noexcept { lhs.swap(rhs); }
79
80 std::array<std::uintptr_t, 3> repr;
81 };
82 #endif // CXXBRIDGE1_RUST_STRING
83
84 #ifndef CXXBRIDGE1_IS_COMPLETE
85 #define CXXBRIDGE1_IS_COMPLETE
86 namespace detail {
87 namespace {
88 template <typename T, typename = std::size_t>
89 struct is_complete : std::false_type {};
90 template <typename T>
91 struct is_complete<T, decltype(sizeof(T))> : std::true_type {};
92 } // namespace
93 } // namespace detail
94 #endif // CXXBRIDGE1_IS_COMPLETE
95
96 namespace {
97 template <bool> struct deleter_if {
operator ()rust::cxxbridge1::__anon32a18fb60211::deleter_if98 template <typename T> void operator()(T *) {}
99 };
100
101 template <> struct deleter_if<true> {
operator ()rust::cxxbridge1::__anon32a18fb60211::deleter_if102 template <typename T> void operator()(T *ptr) { ptr->~T(); }
103 };
104 } // namespace
105 } // namespace cxxbridge1
106 } // namespace rust
107
108 namespace aconfigdwrapper {
109 enum class CppResultStatus : ::std::uint8_t;
110 struct CppVoidResult;
111 struct CppStringResult;
112 using CppAconfigd = ::aconfigdwrapper::CppAconfigd;
113 }
114
115 namespace aconfigdwrapper {
116 #ifndef CXXBRIDGE1_ENUM_aconfigdwrapper$CppResultStatus
117 #define CXXBRIDGE1_ENUM_aconfigdwrapper$CppResultStatus
118 enum class CppResultStatus : ::std::uint8_t {
119 Ok = 0,
120 Err = 1,
121 };
122 #endif // CXXBRIDGE1_ENUM_aconfigdwrapper$CppResultStatus
123
124 #ifndef CXXBRIDGE1_STRUCT_aconfigdwrapper$CppVoidResult
125 #define CXXBRIDGE1_STRUCT_aconfigdwrapper$CppVoidResult
126 struct CppVoidResult final {
127 ::rust::String error_message;
128 ::aconfigdwrapper::CppResultStatus status;
129
130 using IsRelocatable = ::std::true_type;
131 };
132 #endif // CXXBRIDGE1_STRUCT_aconfigdwrapper$CppVoidResult
133
134 #ifndef CXXBRIDGE1_STRUCT_aconfigdwrapper$CppStringResult
135 #define CXXBRIDGE1_STRUCT_aconfigdwrapper$CppStringResult
136 struct CppStringResult final {
137 ::std::unique_ptr<::std::string> data;
138 ::rust::String error_message;
139 ::aconfigdwrapper::CppResultStatus status;
140
141 using IsRelocatable = ::std::true_type;
142 };
143 #endif // CXXBRIDGE1_STRUCT_aconfigdwrapper$CppStringResult
144
145 extern "C" {
aconfigdwrapper$cxxbridge1$new_cpp_aconfigd(::std::string const & str1,::std::string const & str2)146 ::aconfigdwrapper::CppAconfigd *aconfigdwrapper$cxxbridge1$new_cpp_aconfigd(::std::string const &str1, ::std::string const &str2) noexcept {
147 ::std::unique_ptr<::aconfigdwrapper::CppAconfigd> (*new_cpp_aconfigd$)(::std::string const &, ::std::string const &) = ::aconfigdwrapper::new_cpp_aconfigd;
148 return new_cpp_aconfigd$(str1, str2).release();
149 }
150
aconfigdwrapper$cxxbridge1$CppAconfigd$initialize_platform_storage(::aconfigdwrapper::CppAconfigd const & self,::aconfigdwrapper::CppVoidResult * return$)151 void aconfigdwrapper$cxxbridge1$CppAconfigd$initialize_platform_storage(::aconfigdwrapper::CppAconfigd const &self, ::aconfigdwrapper::CppVoidResult *return$) noexcept {
152 ::aconfigdwrapper::CppVoidResult (::aconfigdwrapper::CppAconfigd::*initialize_platform_storage$)() const = &::aconfigdwrapper::CppAconfigd::initialize_platform_storage;
153 new (return$) ::aconfigdwrapper::CppVoidResult((self.*initialize_platform_storage$)());
154 }
155
aconfigdwrapper$cxxbridge1$CppAconfigd$initialize_mainline_storage(::aconfigdwrapper::CppAconfigd const & self,::aconfigdwrapper::CppVoidResult * return$)156 void aconfigdwrapper$cxxbridge1$CppAconfigd$initialize_mainline_storage(::aconfigdwrapper::CppAconfigd const &self, ::aconfigdwrapper::CppVoidResult *return$) noexcept {
157 ::aconfigdwrapper::CppVoidResult (::aconfigdwrapper::CppAconfigd::*initialize_mainline_storage$)() const = &::aconfigdwrapper::CppAconfigd::initialize_mainline_storage;
158 new (return$) ::aconfigdwrapper::CppVoidResult((self.*initialize_mainline_storage$)());
159 }
160
aconfigdwrapper$cxxbridge1$CppAconfigd$initialize_in_memory_storage_records(::aconfigdwrapper::CppAconfigd const & self,::aconfigdwrapper::CppVoidResult * return$)161 void aconfigdwrapper$cxxbridge1$CppAconfigd$initialize_in_memory_storage_records(::aconfigdwrapper::CppAconfigd const &self, ::aconfigdwrapper::CppVoidResult *return$) noexcept {
162 ::aconfigdwrapper::CppVoidResult (::aconfigdwrapper::CppAconfigd::*initialize_in_memory_storage_records$)() const = &::aconfigdwrapper::CppAconfigd::initialize_in_memory_storage_records;
163 new (return$) ::aconfigdwrapper::CppVoidResult((self.*initialize_in_memory_storage_records$)());
164 }
165
aconfigdwrapper$cxxbridge1$CppAconfigd$handle_socket_request(::aconfigdwrapper::CppAconfigd const & self,::std::string const & message_string,::aconfigdwrapper::CppStringResult * return$)166 void aconfigdwrapper$cxxbridge1$CppAconfigd$handle_socket_request(::aconfigdwrapper::CppAconfigd const &self, ::std::string const &message_string, ::aconfigdwrapper::CppStringResult *return$) noexcept {
167 ::aconfigdwrapper::CppStringResult (::aconfigdwrapper::CppAconfigd::*handle_socket_request$)(::std::string const &) const = &::aconfigdwrapper::CppAconfigd::handle_socket_request;
168 new (return$) ::aconfigdwrapper::CppStringResult((self.*handle_socket_request$)(message_string));
169 }
170 } // extern "C"
171 } // namespace aconfigdwrapper
172
173 extern "C" {
174 static_assert(::rust::detail::is_complete<::aconfigdwrapper::CppAconfigd>::value, "definition of CppAconfigd is required");
175 static_assert(sizeof(::std::unique_ptr<::aconfigdwrapper::CppAconfigd>) == sizeof(void *), "");
176 static_assert(alignof(::std::unique_ptr<::aconfigdwrapper::CppAconfigd>) == alignof(void *), "");
cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$null(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> * ptr)177 void cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$null(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> *ptr) noexcept {
178 ::new (ptr) ::std::unique_ptr<::aconfigdwrapper::CppAconfigd>();
179 }
cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$raw(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> * ptr,::aconfigdwrapper::CppAconfigd * raw)180 void cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$raw(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> *ptr, ::aconfigdwrapper::CppAconfigd *raw) noexcept {
181 ::new (ptr) ::std::unique_ptr<::aconfigdwrapper::CppAconfigd>(raw);
182 }
cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$get(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> const & ptr)183 ::aconfigdwrapper::CppAconfigd const *cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$get(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> const &ptr) noexcept {
184 return ptr.get();
185 }
cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$release(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> & ptr)186 ::aconfigdwrapper::CppAconfigd *cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$release(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> &ptr) noexcept {
187 return ptr.release();
188 }
cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$drop(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> * ptr)189 void cxxbridge1$unique_ptr$aconfigdwrapper$CppAconfigd$drop(::std::unique_ptr<::aconfigdwrapper::CppAconfigd> *ptr) noexcept {
190 ::rust::deleter_if<::rust::detail::is_complete<::aconfigdwrapper::CppAconfigd>::value>{}(ptr);
191 }
192 } // extern "C"
193