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