Merge pull request #14 from TheBlueMatt/main
[ldk-c-bindings] / lightning-c-bindings / include / lightningpp.hpp
1 #include <string.h>
2 namespace LDK {
3 class ChannelHandshakeConfig {
4 private:
5         LDKChannelHandshakeConfig self;
6 public:
7         ChannelHandshakeConfig(const ChannelHandshakeConfig&) = delete;
8         ChannelHandshakeConfig(ChannelHandshakeConfig&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelHandshakeConfig)); }
9         ChannelHandshakeConfig(LDKChannelHandshakeConfig&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelHandshakeConfig)); }
10         operator LDKChannelHandshakeConfig() && { LDKChannelHandshakeConfig res = self; memset(&self, 0, sizeof(LDKChannelHandshakeConfig)); return res; }
11         ~ChannelHandshakeConfig() { ChannelHandshakeConfig_free(self); }
12         ChannelHandshakeConfig& operator=(ChannelHandshakeConfig&& o) { ChannelHandshakeConfig_free(self); self = o.self; memset(&o, 0, sizeof(ChannelHandshakeConfig)); return *this; }
13         LDKChannelHandshakeConfig* operator &() { return &self; }
14         LDKChannelHandshakeConfig* operator ->() { return &self; }
15         const LDKChannelHandshakeConfig* operator &() const { return &self; }
16         const LDKChannelHandshakeConfig* operator ->() const { return &self; }
17 };
18 class ChannelHandshakeLimits {
19 private:
20         LDKChannelHandshakeLimits self;
21 public:
22         ChannelHandshakeLimits(const ChannelHandshakeLimits&) = delete;
23         ChannelHandshakeLimits(ChannelHandshakeLimits&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelHandshakeLimits)); }
24         ChannelHandshakeLimits(LDKChannelHandshakeLimits&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelHandshakeLimits)); }
25         operator LDKChannelHandshakeLimits() && { LDKChannelHandshakeLimits res = self; memset(&self, 0, sizeof(LDKChannelHandshakeLimits)); return res; }
26         ~ChannelHandshakeLimits() { ChannelHandshakeLimits_free(self); }
27         ChannelHandshakeLimits& operator=(ChannelHandshakeLimits&& o) { ChannelHandshakeLimits_free(self); self = o.self; memset(&o, 0, sizeof(ChannelHandshakeLimits)); return *this; }
28         LDKChannelHandshakeLimits* operator &() { return &self; }
29         LDKChannelHandshakeLimits* operator ->() { return &self; }
30         const LDKChannelHandshakeLimits* operator &() const { return &self; }
31         const LDKChannelHandshakeLimits* operator ->() const { return &self; }
32 };
33 class ChannelConfig {
34 private:
35         LDKChannelConfig self;
36 public:
37         ChannelConfig(const ChannelConfig&) = delete;
38         ChannelConfig(ChannelConfig&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelConfig)); }
39         ChannelConfig(LDKChannelConfig&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelConfig)); }
40         operator LDKChannelConfig() && { LDKChannelConfig res = self; memset(&self, 0, sizeof(LDKChannelConfig)); return res; }
41         ~ChannelConfig() { ChannelConfig_free(self); }
42         ChannelConfig& operator=(ChannelConfig&& o) { ChannelConfig_free(self); self = o.self; memset(&o, 0, sizeof(ChannelConfig)); return *this; }
43         LDKChannelConfig* operator &() { return &self; }
44         LDKChannelConfig* operator ->() { return &self; }
45         const LDKChannelConfig* operator &() const { return &self; }
46         const LDKChannelConfig* operator ->() const { return &self; }
47 };
48 class UserConfig {
49 private:
50         LDKUserConfig self;
51 public:
52         UserConfig(const UserConfig&) = delete;
53         UserConfig(UserConfig&& o) : self(o.self) { memset(&o, 0, sizeof(UserConfig)); }
54         UserConfig(LDKUserConfig&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUserConfig)); }
55         operator LDKUserConfig() && { LDKUserConfig res = self; memset(&self, 0, sizeof(LDKUserConfig)); return res; }
56         ~UserConfig() { UserConfig_free(self); }
57         UserConfig& operator=(UserConfig&& o) { UserConfig_free(self); self = o.self; memset(&o, 0, sizeof(UserConfig)); return *this; }
58         LDKUserConfig* operator &() { return &self; }
59         LDKUserConfig* operator ->() { return &self; }
60         const LDKUserConfig* operator &() const { return &self; }
61         const LDKUserConfig* operator ->() const { return &self; }
62 };
63 class APIError {
64 private:
65         LDKAPIError self;
66 public:
67         APIError(const APIError&) = delete;
68         APIError(APIError&& o) : self(o.self) { memset(&o, 0, sizeof(APIError)); }
69         APIError(LDKAPIError&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKAPIError)); }
70         operator LDKAPIError() && { LDKAPIError res = self; memset(&self, 0, sizeof(LDKAPIError)); return res; }
71         ~APIError() { APIError_free(self); }
72         APIError& operator=(APIError&& o) { APIError_free(self); self = o.self; memset(&o, 0, sizeof(APIError)); return *this; }
73         LDKAPIError* operator &() { return &self; }
74         LDKAPIError* operator ->() { return &self; }
75         const LDKAPIError* operator &() const { return &self; }
76         const LDKAPIError* operator ->() const { return &self; }
77 };
78 class OutPoint {
79 private:
80         LDKOutPoint self;
81 public:
82         OutPoint(const OutPoint&) = delete;
83         OutPoint(OutPoint&& o) : self(o.self) { memset(&o, 0, sizeof(OutPoint)); }
84         OutPoint(LDKOutPoint&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKOutPoint)); }
85         operator LDKOutPoint() && { LDKOutPoint res = self; memset(&self, 0, sizeof(LDKOutPoint)); return res; }
86         ~OutPoint() { OutPoint_free(self); }
87         OutPoint& operator=(OutPoint&& o) { OutPoint_free(self); self = o.self; memset(&o, 0, sizeof(OutPoint)); return *this; }
88         LDKOutPoint* operator &() { return &self; }
89         LDKOutPoint* operator ->() { return &self; }
90         const LDKOutPoint* operator &() const { return &self; }
91         const LDKOutPoint* operator ->() const { return &self; }
92 };
93 class TxCreationKeys {
94 private:
95         LDKTxCreationKeys self;
96 public:
97         TxCreationKeys(const TxCreationKeys&) = delete;
98         TxCreationKeys(TxCreationKeys&& o) : self(o.self) { memset(&o, 0, sizeof(TxCreationKeys)); }
99         TxCreationKeys(LDKTxCreationKeys&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKTxCreationKeys)); }
100         operator LDKTxCreationKeys() && { LDKTxCreationKeys res = self; memset(&self, 0, sizeof(LDKTxCreationKeys)); return res; }
101         ~TxCreationKeys() { TxCreationKeys_free(self); }
102         TxCreationKeys& operator=(TxCreationKeys&& o) { TxCreationKeys_free(self); self = o.self; memset(&o, 0, sizeof(TxCreationKeys)); return *this; }
103         LDKTxCreationKeys* operator &() { return &self; }
104         LDKTxCreationKeys* operator ->() { return &self; }
105         const LDKTxCreationKeys* operator &() const { return &self; }
106         const LDKTxCreationKeys* operator ->() const { return &self; }
107 };
108 class ChannelPublicKeys {
109 private:
110         LDKChannelPublicKeys self;
111 public:
112         ChannelPublicKeys(const ChannelPublicKeys&) = delete;
113         ChannelPublicKeys(ChannelPublicKeys&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelPublicKeys)); }
114         ChannelPublicKeys(LDKChannelPublicKeys&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelPublicKeys)); }
115         operator LDKChannelPublicKeys() && { LDKChannelPublicKeys res = self; memset(&self, 0, sizeof(LDKChannelPublicKeys)); return res; }
116         ~ChannelPublicKeys() { ChannelPublicKeys_free(self); }
117         ChannelPublicKeys& operator=(ChannelPublicKeys&& o) { ChannelPublicKeys_free(self); self = o.self; memset(&o, 0, sizeof(ChannelPublicKeys)); return *this; }
118         LDKChannelPublicKeys* operator &() { return &self; }
119         LDKChannelPublicKeys* operator ->() { return &self; }
120         const LDKChannelPublicKeys* operator &() const { return &self; }
121         const LDKChannelPublicKeys* operator ->() const { return &self; }
122 };
123 class HTLCOutputInCommitment {
124 private:
125         LDKHTLCOutputInCommitment self;
126 public:
127         HTLCOutputInCommitment(const HTLCOutputInCommitment&) = delete;
128         HTLCOutputInCommitment(HTLCOutputInCommitment&& o) : self(o.self) { memset(&o, 0, sizeof(HTLCOutputInCommitment)); }
129         HTLCOutputInCommitment(LDKHTLCOutputInCommitment&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKHTLCOutputInCommitment)); }
130         operator LDKHTLCOutputInCommitment() && { LDKHTLCOutputInCommitment res = self; memset(&self, 0, sizeof(LDKHTLCOutputInCommitment)); return res; }
131         ~HTLCOutputInCommitment() { HTLCOutputInCommitment_free(self); }
132         HTLCOutputInCommitment& operator=(HTLCOutputInCommitment&& o) { HTLCOutputInCommitment_free(self); self = o.self; memset(&o, 0, sizeof(HTLCOutputInCommitment)); return *this; }
133         LDKHTLCOutputInCommitment* operator &() { return &self; }
134         LDKHTLCOutputInCommitment* operator ->() { return &self; }
135         const LDKHTLCOutputInCommitment* operator &() const { return &self; }
136         const LDKHTLCOutputInCommitment* operator ->() const { return &self; }
137 };
138 class ChannelTransactionParameters {
139 private:
140         LDKChannelTransactionParameters self;
141 public:
142         ChannelTransactionParameters(const ChannelTransactionParameters&) = delete;
143         ChannelTransactionParameters(ChannelTransactionParameters&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelTransactionParameters)); }
144         ChannelTransactionParameters(LDKChannelTransactionParameters&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelTransactionParameters)); }
145         operator LDKChannelTransactionParameters() && { LDKChannelTransactionParameters res = self; memset(&self, 0, sizeof(LDKChannelTransactionParameters)); return res; }
146         ~ChannelTransactionParameters() { ChannelTransactionParameters_free(self); }
147         ChannelTransactionParameters& operator=(ChannelTransactionParameters&& o) { ChannelTransactionParameters_free(self); self = o.self; memset(&o, 0, sizeof(ChannelTransactionParameters)); return *this; }
148         LDKChannelTransactionParameters* operator &() { return &self; }
149         LDKChannelTransactionParameters* operator ->() { return &self; }
150         const LDKChannelTransactionParameters* operator &() const { return &self; }
151         const LDKChannelTransactionParameters* operator ->() const { return &self; }
152 };
153 class CounterpartyChannelTransactionParameters {
154 private:
155         LDKCounterpartyChannelTransactionParameters self;
156 public:
157         CounterpartyChannelTransactionParameters(const CounterpartyChannelTransactionParameters&) = delete;
158         CounterpartyChannelTransactionParameters(CounterpartyChannelTransactionParameters&& o) : self(o.self) { memset(&o, 0, sizeof(CounterpartyChannelTransactionParameters)); }
159         CounterpartyChannelTransactionParameters(LDKCounterpartyChannelTransactionParameters&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCounterpartyChannelTransactionParameters)); }
160         operator LDKCounterpartyChannelTransactionParameters() && { LDKCounterpartyChannelTransactionParameters res = self; memset(&self, 0, sizeof(LDKCounterpartyChannelTransactionParameters)); return res; }
161         ~CounterpartyChannelTransactionParameters() { CounterpartyChannelTransactionParameters_free(self); }
162         CounterpartyChannelTransactionParameters& operator=(CounterpartyChannelTransactionParameters&& o) { CounterpartyChannelTransactionParameters_free(self); self = o.self; memset(&o, 0, sizeof(CounterpartyChannelTransactionParameters)); return *this; }
163         LDKCounterpartyChannelTransactionParameters* operator &() { return &self; }
164         LDKCounterpartyChannelTransactionParameters* operator ->() { return &self; }
165         const LDKCounterpartyChannelTransactionParameters* operator &() const { return &self; }
166         const LDKCounterpartyChannelTransactionParameters* operator ->() const { return &self; }
167 };
168 class DirectedChannelTransactionParameters {
169 private:
170         LDKDirectedChannelTransactionParameters self;
171 public:
172         DirectedChannelTransactionParameters(const DirectedChannelTransactionParameters&) = delete;
173         DirectedChannelTransactionParameters(DirectedChannelTransactionParameters&& o) : self(o.self) { memset(&o, 0, sizeof(DirectedChannelTransactionParameters)); }
174         DirectedChannelTransactionParameters(LDKDirectedChannelTransactionParameters&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKDirectedChannelTransactionParameters)); }
175         operator LDKDirectedChannelTransactionParameters() && { LDKDirectedChannelTransactionParameters res = self; memset(&self, 0, sizeof(LDKDirectedChannelTransactionParameters)); return res; }
176         ~DirectedChannelTransactionParameters() { DirectedChannelTransactionParameters_free(self); }
177         DirectedChannelTransactionParameters& operator=(DirectedChannelTransactionParameters&& o) { DirectedChannelTransactionParameters_free(self); self = o.self; memset(&o, 0, sizeof(DirectedChannelTransactionParameters)); return *this; }
178         LDKDirectedChannelTransactionParameters* operator &() { return &self; }
179         LDKDirectedChannelTransactionParameters* operator ->() { return &self; }
180         const LDKDirectedChannelTransactionParameters* operator &() const { return &self; }
181         const LDKDirectedChannelTransactionParameters* operator ->() const { return &self; }
182 };
183 class HolderCommitmentTransaction {
184 private:
185         LDKHolderCommitmentTransaction self;
186 public:
187         HolderCommitmentTransaction(const HolderCommitmentTransaction&) = delete;
188         HolderCommitmentTransaction(HolderCommitmentTransaction&& o) : self(o.self) { memset(&o, 0, sizeof(HolderCommitmentTransaction)); }
189         HolderCommitmentTransaction(LDKHolderCommitmentTransaction&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKHolderCommitmentTransaction)); }
190         operator LDKHolderCommitmentTransaction() && { LDKHolderCommitmentTransaction res = self; memset(&self, 0, sizeof(LDKHolderCommitmentTransaction)); return res; }
191         ~HolderCommitmentTransaction() { HolderCommitmentTransaction_free(self); }
192         HolderCommitmentTransaction& operator=(HolderCommitmentTransaction&& o) { HolderCommitmentTransaction_free(self); self = o.self; memset(&o, 0, sizeof(HolderCommitmentTransaction)); return *this; }
193         LDKHolderCommitmentTransaction* operator &() { return &self; }
194         LDKHolderCommitmentTransaction* operator ->() { return &self; }
195         const LDKHolderCommitmentTransaction* operator &() const { return &self; }
196         const LDKHolderCommitmentTransaction* operator ->() const { return &self; }
197 };
198 class BuiltCommitmentTransaction {
199 private:
200         LDKBuiltCommitmentTransaction self;
201 public:
202         BuiltCommitmentTransaction(const BuiltCommitmentTransaction&) = delete;
203         BuiltCommitmentTransaction(BuiltCommitmentTransaction&& o) : self(o.self) { memset(&o, 0, sizeof(BuiltCommitmentTransaction)); }
204         BuiltCommitmentTransaction(LDKBuiltCommitmentTransaction&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKBuiltCommitmentTransaction)); }
205         operator LDKBuiltCommitmentTransaction() && { LDKBuiltCommitmentTransaction res = self; memset(&self, 0, sizeof(LDKBuiltCommitmentTransaction)); return res; }
206         ~BuiltCommitmentTransaction() { BuiltCommitmentTransaction_free(self); }
207         BuiltCommitmentTransaction& operator=(BuiltCommitmentTransaction&& o) { BuiltCommitmentTransaction_free(self); self = o.self; memset(&o, 0, sizeof(BuiltCommitmentTransaction)); return *this; }
208         LDKBuiltCommitmentTransaction* operator &() { return &self; }
209         LDKBuiltCommitmentTransaction* operator ->() { return &self; }
210         const LDKBuiltCommitmentTransaction* operator &() const { return &self; }
211         const LDKBuiltCommitmentTransaction* operator ->() const { return &self; }
212 };
213 class CommitmentTransaction {
214 private:
215         LDKCommitmentTransaction self;
216 public:
217         CommitmentTransaction(const CommitmentTransaction&) = delete;
218         CommitmentTransaction(CommitmentTransaction&& o) : self(o.self) { memset(&o, 0, sizeof(CommitmentTransaction)); }
219         CommitmentTransaction(LDKCommitmentTransaction&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCommitmentTransaction)); }
220         operator LDKCommitmentTransaction() && { LDKCommitmentTransaction res = self; memset(&self, 0, sizeof(LDKCommitmentTransaction)); return res; }
221         ~CommitmentTransaction() { CommitmentTransaction_free(self); }
222         CommitmentTransaction& operator=(CommitmentTransaction&& o) { CommitmentTransaction_free(self); self = o.self; memset(&o, 0, sizeof(CommitmentTransaction)); return *this; }
223         LDKCommitmentTransaction* operator &() { return &self; }
224         LDKCommitmentTransaction* operator ->() { return &self; }
225         const LDKCommitmentTransaction* operator &() const { return &self; }
226         const LDKCommitmentTransaction* operator ->() const { return &self; }
227 };
228 class TrustedCommitmentTransaction {
229 private:
230         LDKTrustedCommitmentTransaction self;
231 public:
232         TrustedCommitmentTransaction(const TrustedCommitmentTransaction&) = delete;
233         TrustedCommitmentTransaction(TrustedCommitmentTransaction&& o) : self(o.self) { memset(&o, 0, sizeof(TrustedCommitmentTransaction)); }
234         TrustedCommitmentTransaction(LDKTrustedCommitmentTransaction&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKTrustedCommitmentTransaction)); }
235         operator LDKTrustedCommitmentTransaction() && { LDKTrustedCommitmentTransaction res = self; memset(&self, 0, sizeof(LDKTrustedCommitmentTransaction)); return res; }
236         ~TrustedCommitmentTransaction() { TrustedCommitmentTransaction_free(self); }
237         TrustedCommitmentTransaction& operator=(TrustedCommitmentTransaction&& o) { TrustedCommitmentTransaction_free(self); self = o.self; memset(&o, 0, sizeof(TrustedCommitmentTransaction)); return *this; }
238         LDKTrustedCommitmentTransaction* operator &() { return &self; }
239         LDKTrustedCommitmentTransaction* operator ->() { return &self; }
240         const LDKTrustedCommitmentTransaction* operator &() const { return &self; }
241         const LDKTrustedCommitmentTransaction* operator ->() const { return &self; }
242 };
243 class ChannelMonitorUpdate {
244 private:
245         LDKChannelMonitorUpdate self;
246 public:
247         ChannelMonitorUpdate(const ChannelMonitorUpdate&) = delete;
248         ChannelMonitorUpdate(ChannelMonitorUpdate&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelMonitorUpdate)); }
249         ChannelMonitorUpdate(LDKChannelMonitorUpdate&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelMonitorUpdate)); }
250         operator LDKChannelMonitorUpdate() && { LDKChannelMonitorUpdate res = self; memset(&self, 0, sizeof(LDKChannelMonitorUpdate)); return res; }
251         ~ChannelMonitorUpdate() { ChannelMonitorUpdate_free(self); }
252         ChannelMonitorUpdate& operator=(ChannelMonitorUpdate&& o) { ChannelMonitorUpdate_free(self); self = o.self; memset(&o, 0, sizeof(ChannelMonitorUpdate)); return *this; }
253         LDKChannelMonitorUpdate* operator &() { return &self; }
254         LDKChannelMonitorUpdate* operator ->() { return &self; }
255         const LDKChannelMonitorUpdate* operator &() const { return &self; }
256         const LDKChannelMonitorUpdate* operator ->() const { return &self; }
257 };
258 class ChannelMonitorUpdateErr {
259 private:
260         LDKChannelMonitorUpdateErr self;
261 public:
262         ChannelMonitorUpdateErr(const ChannelMonitorUpdateErr&) = delete;
263         ChannelMonitorUpdateErr(ChannelMonitorUpdateErr&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelMonitorUpdateErr)); }
264         ChannelMonitorUpdateErr(LDKChannelMonitorUpdateErr&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelMonitorUpdateErr)); }
265         operator LDKChannelMonitorUpdateErr() && { LDKChannelMonitorUpdateErr res = self; memset(&self, 0, sizeof(LDKChannelMonitorUpdateErr)); return res; }
266         ChannelMonitorUpdateErr& operator=(ChannelMonitorUpdateErr&& o) { self = o.self; memset(&o, 0, sizeof(ChannelMonitorUpdateErr)); return *this; }
267         LDKChannelMonitorUpdateErr* operator &() { return &self; }
268         LDKChannelMonitorUpdateErr* operator ->() { return &self; }
269         const LDKChannelMonitorUpdateErr* operator &() const { return &self; }
270         const LDKChannelMonitorUpdateErr* operator ->() const { return &self; }
271 };
272 class MonitorUpdateError {
273 private:
274         LDKMonitorUpdateError self;
275 public:
276         MonitorUpdateError(const MonitorUpdateError&) = delete;
277         MonitorUpdateError(MonitorUpdateError&& o) : self(o.self) { memset(&o, 0, sizeof(MonitorUpdateError)); }
278         MonitorUpdateError(LDKMonitorUpdateError&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKMonitorUpdateError)); }
279         operator LDKMonitorUpdateError() && { LDKMonitorUpdateError res = self; memset(&self, 0, sizeof(LDKMonitorUpdateError)); return res; }
280         ~MonitorUpdateError() { MonitorUpdateError_free(self); }
281         MonitorUpdateError& operator=(MonitorUpdateError&& o) { MonitorUpdateError_free(self); self = o.self; memset(&o, 0, sizeof(MonitorUpdateError)); return *this; }
282         LDKMonitorUpdateError* operator &() { return &self; }
283         LDKMonitorUpdateError* operator ->() { return &self; }
284         const LDKMonitorUpdateError* operator &() const { return &self; }
285         const LDKMonitorUpdateError* operator ->() const { return &self; }
286 };
287 class MonitorEvent {
288 private:
289         LDKMonitorEvent self;
290 public:
291         MonitorEvent(const MonitorEvent&) = delete;
292         MonitorEvent(MonitorEvent&& o) : self(o.self) { memset(&o, 0, sizeof(MonitorEvent)); }
293         MonitorEvent(LDKMonitorEvent&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKMonitorEvent)); }
294         operator LDKMonitorEvent() && { LDKMonitorEvent res = self; memset(&self, 0, sizeof(LDKMonitorEvent)); return res; }
295         ~MonitorEvent() { MonitorEvent_free(self); }
296         MonitorEvent& operator=(MonitorEvent&& o) { MonitorEvent_free(self); self = o.self; memset(&o, 0, sizeof(MonitorEvent)); return *this; }
297         LDKMonitorEvent* operator &() { return &self; }
298         LDKMonitorEvent* operator ->() { return &self; }
299         const LDKMonitorEvent* operator &() const { return &self; }
300         const LDKMonitorEvent* operator ->() const { return &self; }
301 };
302 class HTLCUpdate {
303 private:
304         LDKHTLCUpdate self;
305 public:
306         HTLCUpdate(const HTLCUpdate&) = delete;
307         HTLCUpdate(HTLCUpdate&& o) : self(o.self) { memset(&o, 0, sizeof(HTLCUpdate)); }
308         HTLCUpdate(LDKHTLCUpdate&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKHTLCUpdate)); }
309         operator LDKHTLCUpdate() && { LDKHTLCUpdate res = self; memset(&self, 0, sizeof(LDKHTLCUpdate)); return res; }
310         ~HTLCUpdate() { HTLCUpdate_free(self); }
311         HTLCUpdate& operator=(HTLCUpdate&& o) { HTLCUpdate_free(self); self = o.self; memset(&o, 0, sizeof(HTLCUpdate)); return *this; }
312         LDKHTLCUpdate* operator &() { return &self; }
313         LDKHTLCUpdate* operator ->() { return &self; }
314         const LDKHTLCUpdate* operator &() const { return &self; }
315         const LDKHTLCUpdate* operator ->() const { return &self; }
316 };
317 class ChannelMonitor {
318 private:
319         LDKChannelMonitor self;
320 public:
321         ChannelMonitor(const ChannelMonitor&) = delete;
322         ChannelMonitor(ChannelMonitor&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelMonitor)); }
323         ChannelMonitor(LDKChannelMonitor&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelMonitor)); }
324         operator LDKChannelMonitor() && { LDKChannelMonitor res = self; memset(&self, 0, sizeof(LDKChannelMonitor)); return res; }
325         ~ChannelMonitor() { ChannelMonitor_free(self); }
326         ChannelMonitor& operator=(ChannelMonitor&& o) { ChannelMonitor_free(self); self = o.self; memset(&o, 0, sizeof(ChannelMonitor)); return *this; }
327         LDKChannelMonitor* operator &() { return &self; }
328         LDKChannelMonitor* operator ->() { return &self; }
329         const LDKChannelMonitor* operator &() const { return &self; }
330         const LDKChannelMonitor* operator ->() const { return &self; }
331 };
332 class Persist {
333 private:
334         LDKPersist self;
335 public:
336         Persist(const Persist&) = delete;
337         Persist(Persist&& o) : self(o.self) { memset(&o, 0, sizeof(Persist)); }
338         Persist(LDKPersist&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKPersist)); }
339         operator LDKPersist() && { LDKPersist res = self; memset(&self, 0, sizeof(LDKPersist)); return res; }
340         ~Persist() { Persist_free(self); }
341         Persist& operator=(Persist&& o) { Persist_free(self); self = o.self; memset(&o, 0, sizeof(Persist)); return *this; }
342         LDKPersist* operator &() { return &self; }
343         LDKPersist* operator ->() { return &self; }
344         const LDKPersist* operator &() const { return &self; }
345         const LDKPersist* operator ->() const { return &self; }
346 };
347 class RouteHop {
348 private:
349         LDKRouteHop self;
350 public:
351         RouteHop(const RouteHop&) = delete;
352         RouteHop(RouteHop&& o) : self(o.self) { memset(&o, 0, sizeof(RouteHop)); }
353         RouteHop(LDKRouteHop&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKRouteHop)); }
354         operator LDKRouteHop() && { LDKRouteHop res = self; memset(&self, 0, sizeof(LDKRouteHop)); return res; }
355         ~RouteHop() { RouteHop_free(self); }
356         RouteHop& operator=(RouteHop&& o) { RouteHop_free(self); self = o.self; memset(&o, 0, sizeof(RouteHop)); return *this; }
357         LDKRouteHop* operator &() { return &self; }
358         LDKRouteHop* operator ->() { return &self; }
359         const LDKRouteHop* operator &() const { return &self; }
360         const LDKRouteHop* operator ->() const { return &self; }
361 };
362 class Route {
363 private:
364         LDKRoute self;
365 public:
366         Route(const Route&) = delete;
367         Route(Route&& o) : self(o.self) { memset(&o, 0, sizeof(Route)); }
368         Route(LDKRoute&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKRoute)); }
369         operator LDKRoute() && { LDKRoute res = self; memset(&self, 0, sizeof(LDKRoute)); return res; }
370         ~Route() { Route_free(self); }
371         Route& operator=(Route&& o) { Route_free(self); self = o.self; memset(&o, 0, sizeof(Route)); return *this; }
372         LDKRoute* operator &() { return &self; }
373         LDKRoute* operator ->() { return &self; }
374         const LDKRoute* operator &() const { return &self; }
375         const LDKRoute* operator ->() const { return &self; }
376 };
377 class RouteHintHop {
378 private:
379         LDKRouteHintHop self;
380 public:
381         RouteHintHop(const RouteHintHop&) = delete;
382         RouteHintHop(RouteHintHop&& o) : self(o.self) { memset(&o, 0, sizeof(RouteHintHop)); }
383         RouteHintHop(LDKRouteHintHop&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKRouteHintHop)); }
384         operator LDKRouteHintHop() && { LDKRouteHintHop res = self; memset(&self, 0, sizeof(LDKRouteHintHop)); return res; }
385         ~RouteHintHop() { RouteHintHop_free(self); }
386         RouteHintHop& operator=(RouteHintHop&& o) { RouteHintHop_free(self); self = o.self; memset(&o, 0, sizeof(RouteHintHop)); return *this; }
387         LDKRouteHintHop* operator &() { return &self; }
388         LDKRouteHintHop* operator ->() { return &self; }
389         const LDKRouteHintHop* operator &() const { return &self; }
390         const LDKRouteHintHop* operator ->() const { return &self; }
391 };
392 class IgnoringMessageHandler {
393 private:
394         LDKIgnoringMessageHandler self;
395 public:
396         IgnoringMessageHandler(const IgnoringMessageHandler&) = delete;
397         IgnoringMessageHandler(IgnoringMessageHandler&& o) : self(o.self) { memset(&o, 0, sizeof(IgnoringMessageHandler)); }
398         IgnoringMessageHandler(LDKIgnoringMessageHandler&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKIgnoringMessageHandler)); }
399         operator LDKIgnoringMessageHandler() && { LDKIgnoringMessageHandler res = self; memset(&self, 0, sizeof(LDKIgnoringMessageHandler)); return res; }
400         ~IgnoringMessageHandler() { IgnoringMessageHandler_free(self); }
401         IgnoringMessageHandler& operator=(IgnoringMessageHandler&& o) { IgnoringMessageHandler_free(self); self = o.self; memset(&o, 0, sizeof(IgnoringMessageHandler)); return *this; }
402         LDKIgnoringMessageHandler* operator &() { return &self; }
403         LDKIgnoringMessageHandler* operator ->() { return &self; }
404         const LDKIgnoringMessageHandler* operator &() const { return &self; }
405         const LDKIgnoringMessageHandler* operator ->() const { return &self; }
406 };
407 class ErroringMessageHandler {
408 private:
409         LDKErroringMessageHandler self;
410 public:
411         ErroringMessageHandler(const ErroringMessageHandler&) = delete;
412         ErroringMessageHandler(ErroringMessageHandler&& o) : self(o.self) { memset(&o, 0, sizeof(ErroringMessageHandler)); }
413         ErroringMessageHandler(LDKErroringMessageHandler&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKErroringMessageHandler)); }
414         operator LDKErroringMessageHandler() && { LDKErroringMessageHandler res = self; memset(&self, 0, sizeof(LDKErroringMessageHandler)); return res; }
415         ~ErroringMessageHandler() { ErroringMessageHandler_free(self); }
416         ErroringMessageHandler& operator=(ErroringMessageHandler&& o) { ErroringMessageHandler_free(self); self = o.self; memset(&o, 0, sizeof(ErroringMessageHandler)); return *this; }
417         LDKErroringMessageHandler* operator &() { return &self; }
418         LDKErroringMessageHandler* operator ->() { return &self; }
419         const LDKErroringMessageHandler* operator &() const { return &self; }
420         const LDKErroringMessageHandler* operator ->() const { return &self; }
421 };
422 class MessageHandler {
423 private:
424         LDKMessageHandler self;
425 public:
426         MessageHandler(const MessageHandler&) = delete;
427         MessageHandler(MessageHandler&& o) : self(o.self) { memset(&o, 0, sizeof(MessageHandler)); }
428         MessageHandler(LDKMessageHandler&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKMessageHandler)); }
429         operator LDKMessageHandler() && { LDKMessageHandler res = self; memset(&self, 0, sizeof(LDKMessageHandler)); return res; }
430         ~MessageHandler() { MessageHandler_free(self); }
431         MessageHandler& operator=(MessageHandler&& o) { MessageHandler_free(self); self = o.self; memset(&o, 0, sizeof(MessageHandler)); return *this; }
432         LDKMessageHandler* operator &() { return &self; }
433         LDKMessageHandler* operator ->() { return &self; }
434         const LDKMessageHandler* operator &() const { return &self; }
435         const LDKMessageHandler* operator ->() const { return &self; }
436 };
437 class SocketDescriptor {
438 private:
439         LDKSocketDescriptor self;
440 public:
441         SocketDescriptor(const SocketDescriptor&) = delete;
442         SocketDescriptor(SocketDescriptor&& o) : self(o.self) { memset(&o, 0, sizeof(SocketDescriptor)); }
443         SocketDescriptor(LDKSocketDescriptor&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKSocketDescriptor)); }
444         operator LDKSocketDescriptor() && { LDKSocketDescriptor res = self; memset(&self, 0, sizeof(LDKSocketDescriptor)); return res; }
445         ~SocketDescriptor() { SocketDescriptor_free(self); }
446         SocketDescriptor& operator=(SocketDescriptor&& o) { SocketDescriptor_free(self); self = o.self; memset(&o, 0, sizeof(SocketDescriptor)); return *this; }
447         LDKSocketDescriptor* operator &() { return &self; }
448         LDKSocketDescriptor* operator ->() { return &self; }
449         const LDKSocketDescriptor* operator &() const { return &self; }
450         const LDKSocketDescriptor* operator ->() const { return &self; }
451 };
452 class PeerHandleError {
453 private:
454         LDKPeerHandleError self;
455 public:
456         PeerHandleError(const PeerHandleError&) = delete;
457         PeerHandleError(PeerHandleError&& o) : self(o.self) { memset(&o, 0, sizeof(PeerHandleError)); }
458         PeerHandleError(LDKPeerHandleError&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKPeerHandleError)); }
459         operator LDKPeerHandleError() && { LDKPeerHandleError res = self; memset(&self, 0, sizeof(LDKPeerHandleError)); return res; }
460         ~PeerHandleError() { PeerHandleError_free(self); }
461         PeerHandleError& operator=(PeerHandleError&& o) { PeerHandleError_free(self); self = o.self; memset(&o, 0, sizeof(PeerHandleError)); return *this; }
462         LDKPeerHandleError* operator &() { return &self; }
463         LDKPeerHandleError* operator ->() { return &self; }
464         const LDKPeerHandleError* operator &() const { return &self; }
465         const LDKPeerHandleError* operator ->() const { return &self; }
466 };
467 class PeerManager {
468 private:
469         LDKPeerManager self;
470 public:
471         PeerManager(const PeerManager&) = delete;
472         PeerManager(PeerManager&& o) : self(o.self) { memset(&o, 0, sizeof(PeerManager)); }
473         PeerManager(LDKPeerManager&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKPeerManager)); }
474         operator LDKPeerManager() && { LDKPeerManager res = self; memset(&self, 0, sizeof(LDKPeerManager)); return res; }
475         ~PeerManager() { PeerManager_free(self); }
476         PeerManager& operator=(PeerManager&& o) { PeerManager_free(self); self = o.self; memset(&o, 0, sizeof(PeerManager)); return *this; }
477         LDKPeerManager* operator &() { return &self; }
478         LDKPeerManager* operator ->() { return &self; }
479         const LDKPeerManager* operator &() const { return &self; }
480         const LDKPeerManager* operator ->() const { return &self; }
481 };
482 class BroadcasterInterface {
483 private:
484         LDKBroadcasterInterface self;
485 public:
486         BroadcasterInterface(const BroadcasterInterface&) = delete;
487         BroadcasterInterface(BroadcasterInterface&& o) : self(o.self) { memset(&o, 0, sizeof(BroadcasterInterface)); }
488         BroadcasterInterface(LDKBroadcasterInterface&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKBroadcasterInterface)); }
489         operator LDKBroadcasterInterface() && { LDKBroadcasterInterface res = self; memset(&self, 0, sizeof(LDKBroadcasterInterface)); return res; }
490         ~BroadcasterInterface() { BroadcasterInterface_free(self); }
491         BroadcasterInterface& operator=(BroadcasterInterface&& o) { BroadcasterInterface_free(self); self = o.self; memset(&o, 0, sizeof(BroadcasterInterface)); return *this; }
492         LDKBroadcasterInterface* operator &() { return &self; }
493         LDKBroadcasterInterface* operator ->() { return &self; }
494         const LDKBroadcasterInterface* operator &() const { return &self; }
495         const LDKBroadcasterInterface* operator ->() const { return &self; }
496 };
497 class ConfirmationTarget {
498 private:
499         LDKConfirmationTarget self;
500 public:
501         ConfirmationTarget(const ConfirmationTarget&) = delete;
502         ConfirmationTarget(ConfirmationTarget&& o) : self(o.self) { memset(&o, 0, sizeof(ConfirmationTarget)); }
503         ConfirmationTarget(LDKConfirmationTarget&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKConfirmationTarget)); }
504         operator LDKConfirmationTarget() && { LDKConfirmationTarget res = self; memset(&self, 0, sizeof(LDKConfirmationTarget)); return res; }
505         ConfirmationTarget& operator=(ConfirmationTarget&& o) { self = o.self; memset(&o, 0, sizeof(ConfirmationTarget)); return *this; }
506         LDKConfirmationTarget* operator &() { return &self; }
507         LDKConfirmationTarget* operator ->() { return &self; }
508         const LDKConfirmationTarget* operator &() const { return &self; }
509         const LDKConfirmationTarget* operator ->() const { return &self; }
510 };
511 class FeeEstimator {
512 private:
513         LDKFeeEstimator self;
514 public:
515         FeeEstimator(const FeeEstimator&) = delete;
516         FeeEstimator(FeeEstimator&& o) : self(o.self) { memset(&o, 0, sizeof(FeeEstimator)); }
517         FeeEstimator(LDKFeeEstimator&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKFeeEstimator)); }
518         operator LDKFeeEstimator() && { LDKFeeEstimator res = self; memset(&self, 0, sizeof(LDKFeeEstimator)); return res; }
519         ~FeeEstimator() { FeeEstimator_free(self); }
520         FeeEstimator& operator=(FeeEstimator&& o) { FeeEstimator_free(self); self = o.self; memset(&o, 0, sizeof(FeeEstimator)); return *this; }
521         LDKFeeEstimator* operator &() { return &self; }
522         LDKFeeEstimator* operator ->() { return &self; }
523         const LDKFeeEstimator* operator &() const { return &self; }
524         const LDKFeeEstimator* operator ->() const { return &self; }
525 };
526 class AccessError {
527 private:
528         LDKAccessError self;
529 public:
530         AccessError(const AccessError&) = delete;
531         AccessError(AccessError&& o) : self(o.self) { memset(&o, 0, sizeof(AccessError)); }
532         AccessError(LDKAccessError&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKAccessError)); }
533         operator LDKAccessError() && { LDKAccessError res = self; memset(&self, 0, sizeof(LDKAccessError)); return res; }
534         AccessError& operator=(AccessError&& o) { self = o.self; memset(&o, 0, sizeof(AccessError)); return *this; }
535         LDKAccessError* operator &() { return &self; }
536         LDKAccessError* operator ->() { return &self; }
537         const LDKAccessError* operator &() const { return &self; }
538         const LDKAccessError* operator ->() const { return &self; }
539 };
540 class Access {
541 private:
542         LDKAccess self;
543 public:
544         Access(const Access&) = delete;
545         Access(Access&& o) : self(o.self) { memset(&o, 0, sizeof(Access)); }
546         Access(LDKAccess&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKAccess)); }
547         operator LDKAccess() && { LDKAccess res = self; memset(&self, 0, sizeof(LDKAccess)); return res; }
548         ~Access() { Access_free(self); }
549         Access& operator=(Access&& o) { Access_free(self); self = o.self; memset(&o, 0, sizeof(Access)); return *this; }
550         LDKAccess* operator &() { return &self; }
551         LDKAccess* operator ->() { return &self; }
552         const LDKAccess* operator &() const { return &self; }
553         const LDKAccess* operator ->() const { return &self; }
554 };
555 class Listen {
556 private:
557         LDKListen self;
558 public:
559         Listen(const Listen&) = delete;
560         Listen(Listen&& o) : self(o.self) { memset(&o, 0, sizeof(Listen)); }
561         Listen(LDKListen&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKListen)); }
562         operator LDKListen() && { LDKListen res = self; memset(&self, 0, sizeof(LDKListen)); return res; }
563         ~Listen() { Listen_free(self); }
564         Listen& operator=(Listen&& o) { Listen_free(self); self = o.self; memset(&o, 0, sizeof(Listen)); return *this; }
565         LDKListen* operator &() { return &self; }
566         LDKListen* operator ->() { return &self; }
567         const LDKListen* operator &() const { return &self; }
568         const LDKListen* operator ->() const { return &self; }
569 };
570 class Watch {
571 private:
572         LDKWatch self;
573 public:
574         Watch(const Watch&) = delete;
575         Watch(Watch&& o) : self(o.self) { memset(&o, 0, sizeof(Watch)); }
576         Watch(LDKWatch&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKWatch)); }
577         operator LDKWatch() && { LDKWatch res = self; memset(&self, 0, sizeof(LDKWatch)); return res; }
578         ~Watch() { Watch_free(self); }
579         Watch& operator=(Watch&& o) { Watch_free(self); self = o.self; memset(&o, 0, sizeof(Watch)); return *this; }
580         LDKWatch* operator &() { return &self; }
581         LDKWatch* operator ->() { return &self; }
582         const LDKWatch* operator &() const { return &self; }
583         const LDKWatch* operator ->() const { return &self; }
584 };
585 class Filter {
586 private:
587         LDKFilter self;
588 public:
589         Filter(const Filter&) = delete;
590         Filter(Filter&& o) : self(o.self) { memset(&o, 0, sizeof(Filter)); }
591         Filter(LDKFilter&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKFilter)); }
592         operator LDKFilter() && { LDKFilter res = self; memset(&self, 0, sizeof(LDKFilter)); return res; }
593         ~Filter() { Filter_free(self); }
594         Filter& operator=(Filter&& o) { Filter_free(self); self = o.self; memset(&o, 0, sizeof(Filter)); return *this; }
595         LDKFilter* operator &() { return &self; }
596         LDKFilter* operator ->() { return &self; }
597         const LDKFilter* operator &() const { return &self; }
598         const LDKFilter* operator ->() const { return &self; }
599 };
600 class WatchedOutput {
601 private:
602         LDKWatchedOutput self;
603 public:
604         WatchedOutput(const WatchedOutput&) = delete;
605         WatchedOutput(WatchedOutput&& o) : self(o.self) { memset(&o, 0, sizeof(WatchedOutput)); }
606         WatchedOutput(LDKWatchedOutput&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKWatchedOutput)); }
607         operator LDKWatchedOutput() && { LDKWatchedOutput res = self; memset(&self, 0, sizeof(LDKWatchedOutput)); return res; }
608         ~WatchedOutput() { WatchedOutput_free(self); }
609         WatchedOutput& operator=(WatchedOutput&& o) { WatchedOutput_free(self); self = o.self; memset(&o, 0, sizeof(WatchedOutput)); return *this; }
610         LDKWatchedOutput* operator &() { return &self; }
611         LDKWatchedOutput* operator ->() { return &self; }
612         const LDKWatchedOutput* operator &() const { return &self; }
613         const LDKWatchedOutput* operator ->() const { return &self; }
614 };
615 class Event {
616 private:
617         LDKEvent self;
618 public:
619         Event(const Event&) = delete;
620         Event(Event&& o) : self(o.self) { memset(&o, 0, sizeof(Event)); }
621         Event(LDKEvent&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKEvent)); }
622         operator LDKEvent() && { LDKEvent res = self; memset(&self, 0, sizeof(LDKEvent)); return res; }
623         ~Event() { Event_free(self); }
624         Event& operator=(Event&& o) { Event_free(self); self = o.self; memset(&o, 0, sizeof(Event)); return *this; }
625         LDKEvent* operator &() { return &self; }
626         LDKEvent* operator ->() { return &self; }
627         const LDKEvent* operator &() const { return &self; }
628         const LDKEvent* operator ->() const { return &self; }
629 };
630 class MessageSendEvent {
631 private:
632         LDKMessageSendEvent self;
633 public:
634         MessageSendEvent(const MessageSendEvent&) = delete;
635         MessageSendEvent(MessageSendEvent&& o) : self(o.self) { memset(&o, 0, sizeof(MessageSendEvent)); }
636         MessageSendEvent(LDKMessageSendEvent&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKMessageSendEvent)); }
637         operator LDKMessageSendEvent() && { LDKMessageSendEvent res = self; memset(&self, 0, sizeof(LDKMessageSendEvent)); return res; }
638         ~MessageSendEvent() { MessageSendEvent_free(self); }
639         MessageSendEvent& operator=(MessageSendEvent&& o) { MessageSendEvent_free(self); self = o.self; memset(&o, 0, sizeof(MessageSendEvent)); return *this; }
640         LDKMessageSendEvent* operator &() { return &self; }
641         LDKMessageSendEvent* operator ->() { return &self; }
642         const LDKMessageSendEvent* operator &() const { return &self; }
643         const LDKMessageSendEvent* operator ->() const { return &self; }
644 };
645 class MessageSendEventsProvider {
646 private:
647         LDKMessageSendEventsProvider self;
648 public:
649         MessageSendEventsProvider(const MessageSendEventsProvider&) = delete;
650         MessageSendEventsProvider(MessageSendEventsProvider&& o) : self(o.self) { memset(&o, 0, sizeof(MessageSendEventsProvider)); }
651         MessageSendEventsProvider(LDKMessageSendEventsProvider&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKMessageSendEventsProvider)); }
652         operator LDKMessageSendEventsProvider() && { LDKMessageSendEventsProvider res = self; memset(&self, 0, sizeof(LDKMessageSendEventsProvider)); return res; }
653         ~MessageSendEventsProvider() { MessageSendEventsProvider_free(self); }
654         MessageSendEventsProvider& operator=(MessageSendEventsProvider&& o) { MessageSendEventsProvider_free(self); self = o.self; memset(&o, 0, sizeof(MessageSendEventsProvider)); return *this; }
655         LDKMessageSendEventsProvider* operator &() { return &self; }
656         LDKMessageSendEventsProvider* operator ->() { return &self; }
657         const LDKMessageSendEventsProvider* operator &() const { return &self; }
658         const LDKMessageSendEventsProvider* operator ->() const { return &self; }
659 };
660 class EventsProvider {
661 private:
662         LDKEventsProvider self;
663 public:
664         EventsProvider(const EventsProvider&) = delete;
665         EventsProvider(EventsProvider&& o) : self(o.self) { memset(&o, 0, sizeof(EventsProvider)); }
666         EventsProvider(LDKEventsProvider&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKEventsProvider)); }
667         operator LDKEventsProvider() && { LDKEventsProvider res = self; memset(&self, 0, sizeof(LDKEventsProvider)); return res; }
668         ~EventsProvider() { EventsProvider_free(self); }
669         EventsProvider& operator=(EventsProvider&& o) { EventsProvider_free(self); self = o.self; memset(&o, 0, sizeof(EventsProvider)); return *this; }
670         LDKEventsProvider* operator &() { return &self; }
671         LDKEventsProvider* operator ->() { return &self; }
672         const LDKEventsProvider* operator &() const { return &self; }
673         const LDKEventsProvider* operator ->() const { return &self; }
674 };
675 class NetworkGraph {
676 private:
677         LDKNetworkGraph self;
678 public:
679         NetworkGraph(const NetworkGraph&) = delete;
680         NetworkGraph(NetworkGraph&& o) : self(o.self) { memset(&o, 0, sizeof(NetworkGraph)); }
681         NetworkGraph(LDKNetworkGraph&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKNetworkGraph)); }
682         operator LDKNetworkGraph() && { LDKNetworkGraph res = self; memset(&self, 0, sizeof(LDKNetworkGraph)); return res; }
683         ~NetworkGraph() { NetworkGraph_free(self); }
684         NetworkGraph& operator=(NetworkGraph&& o) { NetworkGraph_free(self); self = o.self; memset(&o, 0, sizeof(NetworkGraph)); return *this; }
685         LDKNetworkGraph* operator &() { return &self; }
686         LDKNetworkGraph* operator ->() { return &self; }
687         const LDKNetworkGraph* operator &() const { return &self; }
688         const LDKNetworkGraph* operator ->() const { return &self; }
689 };
690 class LockedNetworkGraph {
691 private:
692         LDKLockedNetworkGraph self;
693 public:
694         LockedNetworkGraph(const LockedNetworkGraph&) = delete;
695         LockedNetworkGraph(LockedNetworkGraph&& o) : self(o.self) { memset(&o, 0, sizeof(LockedNetworkGraph)); }
696         LockedNetworkGraph(LDKLockedNetworkGraph&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKLockedNetworkGraph)); }
697         operator LDKLockedNetworkGraph() && { LDKLockedNetworkGraph res = self; memset(&self, 0, sizeof(LDKLockedNetworkGraph)); return res; }
698         ~LockedNetworkGraph() { LockedNetworkGraph_free(self); }
699         LockedNetworkGraph& operator=(LockedNetworkGraph&& o) { LockedNetworkGraph_free(self); self = o.self; memset(&o, 0, sizeof(LockedNetworkGraph)); return *this; }
700         LDKLockedNetworkGraph* operator &() { return &self; }
701         LDKLockedNetworkGraph* operator ->() { return &self; }
702         const LDKLockedNetworkGraph* operator &() const { return &self; }
703         const LDKLockedNetworkGraph* operator ->() const { return &self; }
704 };
705 class NetGraphMsgHandler {
706 private:
707         LDKNetGraphMsgHandler self;
708 public:
709         NetGraphMsgHandler(const NetGraphMsgHandler&) = delete;
710         NetGraphMsgHandler(NetGraphMsgHandler&& o) : self(o.self) { memset(&o, 0, sizeof(NetGraphMsgHandler)); }
711         NetGraphMsgHandler(LDKNetGraphMsgHandler&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKNetGraphMsgHandler)); }
712         operator LDKNetGraphMsgHandler() && { LDKNetGraphMsgHandler res = self; memset(&self, 0, sizeof(LDKNetGraphMsgHandler)); return res; }
713         ~NetGraphMsgHandler() { NetGraphMsgHandler_free(self); }
714         NetGraphMsgHandler& operator=(NetGraphMsgHandler&& o) { NetGraphMsgHandler_free(self); self = o.self; memset(&o, 0, sizeof(NetGraphMsgHandler)); return *this; }
715         LDKNetGraphMsgHandler* operator &() { return &self; }
716         LDKNetGraphMsgHandler* operator ->() { return &self; }
717         const LDKNetGraphMsgHandler* operator &() const { return &self; }
718         const LDKNetGraphMsgHandler* operator ->() const { return &self; }
719 };
720 class DirectionalChannelInfo {
721 private:
722         LDKDirectionalChannelInfo self;
723 public:
724         DirectionalChannelInfo(const DirectionalChannelInfo&) = delete;
725         DirectionalChannelInfo(DirectionalChannelInfo&& o) : self(o.self) { memset(&o, 0, sizeof(DirectionalChannelInfo)); }
726         DirectionalChannelInfo(LDKDirectionalChannelInfo&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKDirectionalChannelInfo)); }
727         operator LDKDirectionalChannelInfo() && { LDKDirectionalChannelInfo res = self; memset(&self, 0, sizeof(LDKDirectionalChannelInfo)); return res; }
728         ~DirectionalChannelInfo() { DirectionalChannelInfo_free(self); }
729         DirectionalChannelInfo& operator=(DirectionalChannelInfo&& o) { DirectionalChannelInfo_free(self); self = o.self; memset(&o, 0, sizeof(DirectionalChannelInfo)); return *this; }
730         LDKDirectionalChannelInfo* operator &() { return &self; }
731         LDKDirectionalChannelInfo* operator ->() { return &self; }
732         const LDKDirectionalChannelInfo* operator &() const { return &self; }
733         const LDKDirectionalChannelInfo* operator ->() const { return &self; }
734 };
735 class ChannelInfo {
736 private:
737         LDKChannelInfo self;
738 public:
739         ChannelInfo(const ChannelInfo&) = delete;
740         ChannelInfo(ChannelInfo&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelInfo)); }
741         ChannelInfo(LDKChannelInfo&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelInfo)); }
742         operator LDKChannelInfo() && { LDKChannelInfo res = self; memset(&self, 0, sizeof(LDKChannelInfo)); return res; }
743         ~ChannelInfo() { ChannelInfo_free(self); }
744         ChannelInfo& operator=(ChannelInfo&& o) { ChannelInfo_free(self); self = o.self; memset(&o, 0, sizeof(ChannelInfo)); return *this; }
745         LDKChannelInfo* operator &() { return &self; }
746         LDKChannelInfo* operator ->() { return &self; }
747         const LDKChannelInfo* operator &() const { return &self; }
748         const LDKChannelInfo* operator ->() const { return &self; }
749 };
750 class RoutingFees {
751 private:
752         LDKRoutingFees self;
753 public:
754         RoutingFees(const RoutingFees&) = delete;
755         RoutingFees(RoutingFees&& o) : self(o.self) { memset(&o, 0, sizeof(RoutingFees)); }
756         RoutingFees(LDKRoutingFees&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKRoutingFees)); }
757         operator LDKRoutingFees() && { LDKRoutingFees res = self; memset(&self, 0, sizeof(LDKRoutingFees)); return res; }
758         ~RoutingFees() { RoutingFees_free(self); }
759         RoutingFees& operator=(RoutingFees&& o) { RoutingFees_free(self); self = o.self; memset(&o, 0, sizeof(RoutingFees)); return *this; }
760         LDKRoutingFees* operator &() { return &self; }
761         LDKRoutingFees* operator ->() { return &self; }
762         const LDKRoutingFees* operator &() const { return &self; }
763         const LDKRoutingFees* operator ->() const { return &self; }
764 };
765 class NodeAnnouncementInfo {
766 private:
767         LDKNodeAnnouncementInfo self;
768 public:
769         NodeAnnouncementInfo(const NodeAnnouncementInfo&) = delete;
770         NodeAnnouncementInfo(NodeAnnouncementInfo&& o) : self(o.self) { memset(&o, 0, sizeof(NodeAnnouncementInfo)); }
771         NodeAnnouncementInfo(LDKNodeAnnouncementInfo&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKNodeAnnouncementInfo)); }
772         operator LDKNodeAnnouncementInfo() && { LDKNodeAnnouncementInfo res = self; memset(&self, 0, sizeof(LDKNodeAnnouncementInfo)); return res; }
773         ~NodeAnnouncementInfo() { NodeAnnouncementInfo_free(self); }
774         NodeAnnouncementInfo& operator=(NodeAnnouncementInfo&& o) { NodeAnnouncementInfo_free(self); self = o.self; memset(&o, 0, sizeof(NodeAnnouncementInfo)); return *this; }
775         LDKNodeAnnouncementInfo* operator &() { return &self; }
776         LDKNodeAnnouncementInfo* operator ->() { return &self; }
777         const LDKNodeAnnouncementInfo* operator &() const { return &self; }
778         const LDKNodeAnnouncementInfo* operator ->() const { return &self; }
779 };
780 class NodeInfo {
781 private:
782         LDKNodeInfo self;
783 public:
784         NodeInfo(const NodeInfo&) = delete;
785         NodeInfo(NodeInfo&& o) : self(o.self) { memset(&o, 0, sizeof(NodeInfo)); }
786         NodeInfo(LDKNodeInfo&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKNodeInfo)); }
787         operator LDKNodeInfo() && { LDKNodeInfo res = self; memset(&self, 0, sizeof(LDKNodeInfo)); return res; }
788         ~NodeInfo() { NodeInfo_free(self); }
789         NodeInfo& operator=(NodeInfo&& o) { NodeInfo_free(self); self = o.self; memset(&o, 0, sizeof(NodeInfo)); return *this; }
790         LDKNodeInfo* operator &() { return &self; }
791         LDKNodeInfo* operator ->() { return &self; }
792         const LDKNodeInfo* operator &() const { return &self; }
793         const LDKNodeInfo* operator ->() const { return &self; }
794 };
795 class InitFeatures {
796 private:
797         LDKInitFeatures self;
798 public:
799         InitFeatures(const InitFeatures&) = delete;
800         InitFeatures(InitFeatures&& o) : self(o.self) { memset(&o, 0, sizeof(InitFeatures)); }
801         InitFeatures(LDKInitFeatures&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKInitFeatures)); }
802         operator LDKInitFeatures() && { LDKInitFeatures res = self; memset(&self, 0, sizeof(LDKInitFeatures)); return res; }
803         ~InitFeatures() { InitFeatures_free(self); }
804         InitFeatures& operator=(InitFeatures&& o) { InitFeatures_free(self); self = o.self; memset(&o, 0, sizeof(InitFeatures)); return *this; }
805         LDKInitFeatures* operator &() { return &self; }
806         LDKInitFeatures* operator ->() { return &self; }
807         const LDKInitFeatures* operator &() const { return &self; }
808         const LDKInitFeatures* operator ->() const { return &self; }
809 };
810 class NodeFeatures {
811 private:
812         LDKNodeFeatures self;
813 public:
814         NodeFeatures(const NodeFeatures&) = delete;
815         NodeFeatures(NodeFeatures&& o) : self(o.self) { memset(&o, 0, sizeof(NodeFeatures)); }
816         NodeFeatures(LDKNodeFeatures&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKNodeFeatures)); }
817         operator LDKNodeFeatures() && { LDKNodeFeatures res = self; memset(&self, 0, sizeof(LDKNodeFeatures)); return res; }
818         ~NodeFeatures() { NodeFeatures_free(self); }
819         NodeFeatures& operator=(NodeFeatures&& o) { NodeFeatures_free(self); self = o.self; memset(&o, 0, sizeof(NodeFeatures)); return *this; }
820         LDKNodeFeatures* operator &() { return &self; }
821         LDKNodeFeatures* operator ->() { return &self; }
822         const LDKNodeFeatures* operator &() const { return &self; }
823         const LDKNodeFeatures* operator ->() const { return &self; }
824 };
825 class ChannelFeatures {
826 private:
827         LDKChannelFeatures self;
828 public:
829         ChannelFeatures(const ChannelFeatures&) = delete;
830         ChannelFeatures(ChannelFeatures&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelFeatures)); }
831         ChannelFeatures(LDKChannelFeatures&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelFeatures)); }
832         operator LDKChannelFeatures() && { LDKChannelFeatures res = self; memset(&self, 0, sizeof(LDKChannelFeatures)); return res; }
833         ~ChannelFeatures() { ChannelFeatures_free(self); }
834         ChannelFeatures& operator=(ChannelFeatures&& o) { ChannelFeatures_free(self); self = o.self; memset(&o, 0, sizeof(ChannelFeatures)); return *this; }
835         LDKChannelFeatures* operator &() { return &self; }
836         LDKChannelFeatures* operator ->() { return &self; }
837         const LDKChannelFeatures* operator &() const { return &self; }
838         const LDKChannelFeatures* operator ->() const { return &self; }
839 };
840 class InvoiceFeatures {
841 private:
842         LDKInvoiceFeatures self;
843 public:
844         InvoiceFeatures(const InvoiceFeatures&) = delete;
845         InvoiceFeatures(InvoiceFeatures&& o) : self(o.self) { memset(&o, 0, sizeof(InvoiceFeatures)); }
846         InvoiceFeatures(LDKInvoiceFeatures&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKInvoiceFeatures)); }
847         operator LDKInvoiceFeatures() && { LDKInvoiceFeatures res = self; memset(&self, 0, sizeof(LDKInvoiceFeatures)); return res; }
848         ~InvoiceFeatures() { InvoiceFeatures_free(self); }
849         InvoiceFeatures& operator=(InvoiceFeatures&& o) { InvoiceFeatures_free(self); self = o.self; memset(&o, 0, sizeof(InvoiceFeatures)); return *this; }
850         LDKInvoiceFeatures* operator &() { return &self; }
851         LDKInvoiceFeatures* operator ->() { return &self; }
852         const LDKInvoiceFeatures* operator &() const { return &self; }
853         const LDKInvoiceFeatures* operator ->() const { return &self; }
854 };
855 class DecodeError {
856 private:
857         LDKDecodeError self;
858 public:
859         DecodeError(const DecodeError&) = delete;
860         DecodeError(DecodeError&& o) : self(o.self) { memset(&o, 0, sizeof(DecodeError)); }
861         DecodeError(LDKDecodeError&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKDecodeError)); }
862         operator LDKDecodeError() && { LDKDecodeError res = self; memset(&self, 0, sizeof(LDKDecodeError)); return res; }
863         ~DecodeError() { DecodeError_free(self); }
864         DecodeError& operator=(DecodeError&& o) { DecodeError_free(self); self = o.self; memset(&o, 0, sizeof(DecodeError)); return *this; }
865         LDKDecodeError* operator &() { return &self; }
866         LDKDecodeError* operator ->() { return &self; }
867         const LDKDecodeError* operator &() const { return &self; }
868         const LDKDecodeError* operator ->() const { return &self; }
869 };
870 class Init {
871 private:
872         LDKInit self;
873 public:
874         Init(const Init&) = delete;
875         Init(Init&& o) : self(o.self) { memset(&o, 0, sizeof(Init)); }
876         Init(LDKInit&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKInit)); }
877         operator LDKInit() && { LDKInit res = self; memset(&self, 0, sizeof(LDKInit)); return res; }
878         ~Init() { Init_free(self); }
879         Init& operator=(Init&& o) { Init_free(self); self = o.self; memset(&o, 0, sizeof(Init)); return *this; }
880         LDKInit* operator &() { return &self; }
881         LDKInit* operator ->() { return &self; }
882         const LDKInit* operator &() const { return &self; }
883         const LDKInit* operator ->() const { return &self; }
884 };
885 class ErrorMessage {
886 private:
887         LDKErrorMessage self;
888 public:
889         ErrorMessage(const ErrorMessage&) = delete;
890         ErrorMessage(ErrorMessage&& o) : self(o.self) { memset(&o, 0, sizeof(ErrorMessage)); }
891         ErrorMessage(LDKErrorMessage&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKErrorMessage)); }
892         operator LDKErrorMessage() && { LDKErrorMessage res = self; memset(&self, 0, sizeof(LDKErrorMessage)); return res; }
893         ~ErrorMessage() { ErrorMessage_free(self); }
894         ErrorMessage& operator=(ErrorMessage&& o) { ErrorMessage_free(self); self = o.self; memset(&o, 0, sizeof(ErrorMessage)); return *this; }
895         LDKErrorMessage* operator &() { return &self; }
896         LDKErrorMessage* operator ->() { return &self; }
897         const LDKErrorMessage* operator &() const { return &self; }
898         const LDKErrorMessage* operator ->() const { return &self; }
899 };
900 class Ping {
901 private:
902         LDKPing self;
903 public:
904         Ping(const Ping&) = delete;
905         Ping(Ping&& o) : self(o.self) { memset(&o, 0, sizeof(Ping)); }
906         Ping(LDKPing&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKPing)); }
907         operator LDKPing() && { LDKPing res = self; memset(&self, 0, sizeof(LDKPing)); return res; }
908         ~Ping() { Ping_free(self); }
909         Ping& operator=(Ping&& o) { Ping_free(self); self = o.self; memset(&o, 0, sizeof(Ping)); return *this; }
910         LDKPing* operator &() { return &self; }
911         LDKPing* operator ->() { return &self; }
912         const LDKPing* operator &() const { return &self; }
913         const LDKPing* operator ->() const { return &self; }
914 };
915 class Pong {
916 private:
917         LDKPong self;
918 public:
919         Pong(const Pong&) = delete;
920         Pong(Pong&& o) : self(o.self) { memset(&o, 0, sizeof(Pong)); }
921         Pong(LDKPong&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKPong)); }
922         operator LDKPong() && { LDKPong res = self; memset(&self, 0, sizeof(LDKPong)); return res; }
923         ~Pong() { Pong_free(self); }
924         Pong& operator=(Pong&& o) { Pong_free(self); self = o.self; memset(&o, 0, sizeof(Pong)); return *this; }
925         LDKPong* operator &() { return &self; }
926         LDKPong* operator ->() { return &self; }
927         const LDKPong* operator &() const { return &self; }
928         const LDKPong* operator ->() const { return &self; }
929 };
930 class OpenChannel {
931 private:
932         LDKOpenChannel self;
933 public:
934         OpenChannel(const OpenChannel&) = delete;
935         OpenChannel(OpenChannel&& o) : self(o.self) { memset(&o, 0, sizeof(OpenChannel)); }
936         OpenChannel(LDKOpenChannel&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKOpenChannel)); }
937         operator LDKOpenChannel() && { LDKOpenChannel res = self; memset(&self, 0, sizeof(LDKOpenChannel)); return res; }
938         ~OpenChannel() { OpenChannel_free(self); }
939         OpenChannel& operator=(OpenChannel&& o) { OpenChannel_free(self); self = o.self; memset(&o, 0, sizeof(OpenChannel)); return *this; }
940         LDKOpenChannel* operator &() { return &self; }
941         LDKOpenChannel* operator ->() { return &self; }
942         const LDKOpenChannel* operator &() const { return &self; }
943         const LDKOpenChannel* operator ->() const { return &self; }
944 };
945 class AcceptChannel {
946 private:
947         LDKAcceptChannel self;
948 public:
949         AcceptChannel(const AcceptChannel&) = delete;
950         AcceptChannel(AcceptChannel&& o) : self(o.self) { memset(&o, 0, sizeof(AcceptChannel)); }
951         AcceptChannel(LDKAcceptChannel&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKAcceptChannel)); }
952         operator LDKAcceptChannel() && { LDKAcceptChannel res = self; memset(&self, 0, sizeof(LDKAcceptChannel)); return res; }
953         ~AcceptChannel() { AcceptChannel_free(self); }
954         AcceptChannel& operator=(AcceptChannel&& o) { AcceptChannel_free(self); self = o.self; memset(&o, 0, sizeof(AcceptChannel)); return *this; }
955         LDKAcceptChannel* operator &() { return &self; }
956         LDKAcceptChannel* operator ->() { return &self; }
957         const LDKAcceptChannel* operator &() const { return &self; }
958         const LDKAcceptChannel* operator ->() const { return &self; }
959 };
960 class FundingCreated {
961 private:
962         LDKFundingCreated self;
963 public:
964         FundingCreated(const FundingCreated&) = delete;
965         FundingCreated(FundingCreated&& o) : self(o.self) { memset(&o, 0, sizeof(FundingCreated)); }
966         FundingCreated(LDKFundingCreated&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKFundingCreated)); }
967         operator LDKFundingCreated() && { LDKFundingCreated res = self; memset(&self, 0, sizeof(LDKFundingCreated)); return res; }
968         ~FundingCreated() { FundingCreated_free(self); }
969         FundingCreated& operator=(FundingCreated&& o) { FundingCreated_free(self); self = o.self; memset(&o, 0, sizeof(FundingCreated)); return *this; }
970         LDKFundingCreated* operator &() { return &self; }
971         LDKFundingCreated* operator ->() { return &self; }
972         const LDKFundingCreated* operator &() const { return &self; }
973         const LDKFundingCreated* operator ->() const { return &self; }
974 };
975 class FundingSigned {
976 private:
977         LDKFundingSigned self;
978 public:
979         FundingSigned(const FundingSigned&) = delete;
980         FundingSigned(FundingSigned&& o) : self(o.self) { memset(&o, 0, sizeof(FundingSigned)); }
981         FundingSigned(LDKFundingSigned&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKFundingSigned)); }
982         operator LDKFundingSigned() && { LDKFundingSigned res = self; memset(&self, 0, sizeof(LDKFundingSigned)); return res; }
983         ~FundingSigned() { FundingSigned_free(self); }
984         FundingSigned& operator=(FundingSigned&& o) { FundingSigned_free(self); self = o.self; memset(&o, 0, sizeof(FundingSigned)); return *this; }
985         LDKFundingSigned* operator &() { return &self; }
986         LDKFundingSigned* operator ->() { return &self; }
987         const LDKFundingSigned* operator &() const { return &self; }
988         const LDKFundingSigned* operator ->() const { return &self; }
989 };
990 class FundingLocked {
991 private:
992         LDKFundingLocked self;
993 public:
994         FundingLocked(const FundingLocked&) = delete;
995         FundingLocked(FundingLocked&& o) : self(o.self) { memset(&o, 0, sizeof(FundingLocked)); }
996         FundingLocked(LDKFundingLocked&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKFundingLocked)); }
997         operator LDKFundingLocked() && { LDKFundingLocked res = self; memset(&self, 0, sizeof(LDKFundingLocked)); return res; }
998         ~FundingLocked() { FundingLocked_free(self); }
999         FundingLocked& operator=(FundingLocked&& o) { FundingLocked_free(self); self = o.self; memset(&o, 0, sizeof(FundingLocked)); return *this; }
1000         LDKFundingLocked* operator &() { return &self; }
1001         LDKFundingLocked* operator ->() { return &self; }
1002         const LDKFundingLocked* operator &() const { return &self; }
1003         const LDKFundingLocked* operator ->() const { return &self; }
1004 };
1005 class Shutdown {
1006 private:
1007         LDKShutdown self;
1008 public:
1009         Shutdown(const Shutdown&) = delete;
1010         Shutdown(Shutdown&& o) : self(o.self) { memset(&o, 0, sizeof(Shutdown)); }
1011         Shutdown(LDKShutdown&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKShutdown)); }
1012         operator LDKShutdown() && { LDKShutdown res = self; memset(&self, 0, sizeof(LDKShutdown)); return res; }
1013         ~Shutdown() { Shutdown_free(self); }
1014         Shutdown& operator=(Shutdown&& o) { Shutdown_free(self); self = o.self; memset(&o, 0, sizeof(Shutdown)); return *this; }
1015         LDKShutdown* operator &() { return &self; }
1016         LDKShutdown* operator ->() { return &self; }
1017         const LDKShutdown* operator &() const { return &self; }
1018         const LDKShutdown* operator ->() const { return &self; }
1019 };
1020 class ClosingSigned {
1021 private:
1022         LDKClosingSigned self;
1023 public:
1024         ClosingSigned(const ClosingSigned&) = delete;
1025         ClosingSigned(ClosingSigned&& o) : self(o.self) { memset(&o, 0, sizeof(ClosingSigned)); }
1026         ClosingSigned(LDKClosingSigned&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKClosingSigned)); }
1027         operator LDKClosingSigned() && { LDKClosingSigned res = self; memset(&self, 0, sizeof(LDKClosingSigned)); return res; }
1028         ~ClosingSigned() { ClosingSigned_free(self); }
1029         ClosingSigned& operator=(ClosingSigned&& o) { ClosingSigned_free(self); self = o.self; memset(&o, 0, sizeof(ClosingSigned)); return *this; }
1030         LDKClosingSigned* operator &() { return &self; }
1031         LDKClosingSigned* operator ->() { return &self; }
1032         const LDKClosingSigned* operator &() const { return &self; }
1033         const LDKClosingSigned* operator ->() const { return &self; }
1034 };
1035 class UpdateAddHTLC {
1036 private:
1037         LDKUpdateAddHTLC self;
1038 public:
1039         UpdateAddHTLC(const UpdateAddHTLC&) = delete;
1040         UpdateAddHTLC(UpdateAddHTLC&& o) : self(o.self) { memset(&o, 0, sizeof(UpdateAddHTLC)); }
1041         UpdateAddHTLC(LDKUpdateAddHTLC&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUpdateAddHTLC)); }
1042         operator LDKUpdateAddHTLC() && { LDKUpdateAddHTLC res = self; memset(&self, 0, sizeof(LDKUpdateAddHTLC)); return res; }
1043         ~UpdateAddHTLC() { UpdateAddHTLC_free(self); }
1044         UpdateAddHTLC& operator=(UpdateAddHTLC&& o) { UpdateAddHTLC_free(self); self = o.self; memset(&o, 0, sizeof(UpdateAddHTLC)); return *this; }
1045         LDKUpdateAddHTLC* operator &() { return &self; }
1046         LDKUpdateAddHTLC* operator ->() { return &self; }
1047         const LDKUpdateAddHTLC* operator &() const { return &self; }
1048         const LDKUpdateAddHTLC* operator ->() const { return &self; }
1049 };
1050 class UpdateFulfillHTLC {
1051 private:
1052         LDKUpdateFulfillHTLC self;
1053 public:
1054         UpdateFulfillHTLC(const UpdateFulfillHTLC&) = delete;
1055         UpdateFulfillHTLC(UpdateFulfillHTLC&& o) : self(o.self) { memset(&o, 0, sizeof(UpdateFulfillHTLC)); }
1056         UpdateFulfillHTLC(LDKUpdateFulfillHTLC&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUpdateFulfillHTLC)); }
1057         operator LDKUpdateFulfillHTLC() && { LDKUpdateFulfillHTLC res = self; memset(&self, 0, sizeof(LDKUpdateFulfillHTLC)); return res; }
1058         ~UpdateFulfillHTLC() { UpdateFulfillHTLC_free(self); }
1059         UpdateFulfillHTLC& operator=(UpdateFulfillHTLC&& o) { UpdateFulfillHTLC_free(self); self = o.self; memset(&o, 0, sizeof(UpdateFulfillHTLC)); return *this; }
1060         LDKUpdateFulfillHTLC* operator &() { return &self; }
1061         LDKUpdateFulfillHTLC* operator ->() { return &self; }
1062         const LDKUpdateFulfillHTLC* operator &() const { return &self; }
1063         const LDKUpdateFulfillHTLC* operator ->() const { return &self; }
1064 };
1065 class UpdateFailHTLC {
1066 private:
1067         LDKUpdateFailHTLC self;
1068 public:
1069         UpdateFailHTLC(const UpdateFailHTLC&) = delete;
1070         UpdateFailHTLC(UpdateFailHTLC&& o) : self(o.self) { memset(&o, 0, sizeof(UpdateFailHTLC)); }
1071         UpdateFailHTLC(LDKUpdateFailHTLC&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUpdateFailHTLC)); }
1072         operator LDKUpdateFailHTLC() && { LDKUpdateFailHTLC res = self; memset(&self, 0, sizeof(LDKUpdateFailHTLC)); return res; }
1073         ~UpdateFailHTLC() { UpdateFailHTLC_free(self); }
1074         UpdateFailHTLC& operator=(UpdateFailHTLC&& o) { UpdateFailHTLC_free(self); self = o.self; memset(&o, 0, sizeof(UpdateFailHTLC)); return *this; }
1075         LDKUpdateFailHTLC* operator &() { return &self; }
1076         LDKUpdateFailHTLC* operator ->() { return &self; }
1077         const LDKUpdateFailHTLC* operator &() const { return &self; }
1078         const LDKUpdateFailHTLC* operator ->() const { return &self; }
1079 };
1080 class UpdateFailMalformedHTLC {
1081 private:
1082         LDKUpdateFailMalformedHTLC self;
1083 public:
1084         UpdateFailMalformedHTLC(const UpdateFailMalformedHTLC&) = delete;
1085         UpdateFailMalformedHTLC(UpdateFailMalformedHTLC&& o) : self(o.self) { memset(&o, 0, sizeof(UpdateFailMalformedHTLC)); }
1086         UpdateFailMalformedHTLC(LDKUpdateFailMalformedHTLC&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUpdateFailMalformedHTLC)); }
1087         operator LDKUpdateFailMalformedHTLC() && { LDKUpdateFailMalformedHTLC res = self; memset(&self, 0, sizeof(LDKUpdateFailMalformedHTLC)); return res; }
1088         ~UpdateFailMalformedHTLC() { UpdateFailMalformedHTLC_free(self); }
1089         UpdateFailMalformedHTLC& operator=(UpdateFailMalformedHTLC&& o) { UpdateFailMalformedHTLC_free(self); self = o.self; memset(&o, 0, sizeof(UpdateFailMalformedHTLC)); return *this; }
1090         LDKUpdateFailMalformedHTLC* operator &() { return &self; }
1091         LDKUpdateFailMalformedHTLC* operator ->() { return &self; }
1092         const LDKUpdateFailMalformedHTLC* operator &() const { return &self; }
1093         const LDKUpdateFailMalformedHTLC* operator ->() const { return &self; }
1094 };
1095 class CommitmentSigned {
1096 private:
1097         LDKCommitmentSigned self;
1098 public:
1099         CommitmentSigned(const CommitmentSigned&) = delete;
1100         CommitmentSigned(CommitmentSigned&& o) : self(o.self) { memset(&o, 0, sizeof(CommitmentSigned)); }
1101         CommitmentSigned(LDKCommitmentSigned&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCommitmentSigned)); }
1102         operator LDKCommitmentSigned() && { LDKCommitmentSigned res = self; memset(&self, 0, sizeof(LDKCommitmentSigned)); return res; }
1103         ~CommitmentSigned() { CommitmentSigned_free(self); }
1104         CommitmentSigned& operator=(CommitmentSigned&& o) { CommitmentSigned_free(self); self = o.self; memset(&o, 0, sizeof(CommitmentSigned)); return *this; }
1105         LDKCommitmentSigned* operator &() { return &self; }
1106         LDKCommitmentSigned* operator ->() { return &self; }
1107         const LDKCommitmentSigned* operator &() const { return &self; }
1108         const LDKCommitmentSigned* operator ->() const { return &self; }
1109 };
1110 class RevokeAndACK {
1111 private:
1112         LDKRevokeAndACK self;
1113 public:
1114         RevokeAndACK(const RevokeAndACK&) = delete;
1115         RevokeAndACK(RevokeAndACK&& o) : self(o.self) { memset(&o, 0, sizeof(RevokeAndACK)); }
1116         RevokeAndACK(LDKRevokeAndACK&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKRevokeAndACK)); }
1117         operator LDKRevokeAndACK() && { LDKRevokeAndACK res = self; memset(&self, 0, sizeof(LDKRevokeAndACK)); return res; }
1118         ~RevokeAndACK() { RevokeAndACK_free(self); }
1119         RevokeAndACK& operator=(RevokeAndACK&& o) { RevokeAndACK_free(self); self = o.self; memset(&o, 0, sizeof(RevokeAndACK)); return *this; }
1120         LDKRevokeAndACK* operator &() { return &self; }
1121         LDKRevokeAndACK* operator ->() { return &self; }
1122         const LDKRevokeAndACK* operator &() const { return &self; }
1123         const LDKRevokeAndACK* operator ->() const { return &self; }
1124 };
1125 class UpdateFee {
1126 private:
1127         LDKUpdateFee self;
1128 public:
1129         UpdateFee(const UpdateFee&) = delete;
1130         UpdateFee(UpdateFee&& o) : self(o.self) { memset(&o, 0, sizeof(UpdateFee)); }
1131         UpdateFee(LDKUpdateFee&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUpdateFee)); }
1132         operator LDKUpdateFee() && { LDKUpdateFee res = self; memset(&self, 0, sizeof(LDKUpdateFee)); return res; }
1133         ~UpdateFee() { UpdateFee_free(self); }
1134         UpdateFee& operator=(UpdateFee&& o) { UpdateFee_free(self); self = o.self; memset(&o, 0, sizeof(UpdateFee)); return *this; }
1135         LDKUpdateFee* operator &() { return &self; }
1136         LDKUpdateFee* operator ->() { return &self; }
1137         const LDKUpdateFee* operator &() const { return &self; }
1138         const LDKUpdateFee* operator ->() const { return &self; }
1139 };
1140 class DataLossProtect {
1141 private:
1142         LDKDataLossProtect self;
1143 public:
1144         DataLossProtect(const DataLossProtect&) = delete;
1145         DataLossProtect(DataLossProtect&& o) : self(o.self) { memset(&o, 0, sizeof(DataLossProtect)); }
1146         DataLossProtect(LDKDataLossProtect&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKDataLossProtect)); }
1147         operator LDKDataLossProtect() && { LDKDataLossProtect res = self; memset(&self, 0, sizeof(LDKDataLossProtect)); return res; }
1148         ~DataLossProtect() { DataLossProtect_free(self); }
1149         DataLossProtect& operator=(DataLossProtect&& o) { DataLossProtect_free(self); self = o.self; memset(&o, 0, sizeof(DataLossProtect)); return *this; }
1150         LDKDataLossProtect* operator &() { return &self; }
1151         LDKDataLossProtect* operator ->() { return &self; }
1152         const LDKDataLossProtect* operator &() const { return &self; }
1153         const LDKDataLossProtect* operator ->() const { return &self; }
1154 };
1155 class ChannelReestablish {
1156 private:
1157         LDKChannelReestablish self;
1158 public:
1159         ChannelReestablish(const ChannelReestablish&) = delete;
1160         ChannelReestablish(ChannelReestablish&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelReestablish)); }
1161         ChannelReestablish(LDKChannelReestablish&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelReestablish)); }
1162         operator LDKChannelReestablish() && { LDKChannelReestablish res = self; memset(&self, 0, sizeof(LDKChannelReestablish)); return res; }
1163         ~ChannelReestablish() { ChannelReestablish_free(self); }
1164         ChannelReestablish& operator=(ChannelReestablish&& o) { ChannelReestablish_free(self); self = o.self; memset(&o, 0, sizeof(ChannelReestablish)); return *this; }
1165         LDKChannelReestablish* operator &() { return &self; }
1166         LDKChannelReestablish* operator ->() { return &self; }
1167         const LDKChannelReestablish* operator &() const { return &self; }
1168         const LDKChannelReestablish* operator ->() const { return &self; }
1169 };
1170 class AnnouncementSignatures {
1171 private:
1172         LDKAnnouncementSignatures self;
1173 public:
1174         AnnouncementSignatures(const AnnouncementSignatures&) = delete;
1175         AnnouncementSignatures(AnnouncementSignatures&& o) : self(o.self) { memset(&o, 0, sizeof(AnnouncementSignatures)); }
1176         AnnouncementSignatures(LDKAnnouncementSignatures&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKAnnouncementSignatures)); }
1177         operator LDKAnnouncementSignatures() && { LDKAnnouncementSignatures res = self; memset(&self, 0, sizeof(LDKAnnouncementSignatures)); return res; }
1178         ~AnnouncementSignatures() { AnnouncementSignatures_free(self); }
1179         AnnouncementSignatures& operator=(AnnouncementSignatures&& o) { AnnouncementSignatures_free(self); self = o.self; memset(&o, 0, sizeof(AnnouncementSignatures)); return *this; }
1180         LDKAnnouncementSignatures* operator &() { return &self; }
1181         LDKAnnouncementSignatures* operator ->() { return &self; }
1182         const LDKAnnouncementSignatures* operator &() const { return &self; }
1183         const LDKAnnouncementSignatures* operator ->() const { return &self; }
1184 };
1185 class NetAddress {
1186 private:
1187         LDKNetAddress self;
1188 public:
1189         NetAddress(const NetAddress&) = delete;
1190         NetAddress(NetAddress&& o) : self(o.self) { memset(&o, 0, sizeof(NetAddress)); }
1191         NetAddress(LDKNetAddress&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKNetAddress)); }
1192         operator LDKNetAddress() && { LDKNetAddress res = self; memset(&self, 0, sizeof(LDKNetAddress)); return res; }
1193         ~NetAddress() { NetAddress_free(self); }
1194         NetAddress& operator=(NetAddress&& o) { NetAddress_free(self); self = o.self; memset(&o, 0, sizeof(NetAddress)); return *this; }
1195         LDKNetAddress* operator &() { return &self; }
1196         LDKNetAddress* operator ->() { return &self; }
1197         const LDKNetAddress* operator &() const { return &self; }
1198         const LDKNetAddress* operator ->() const { return &self; }
1199 };
1200 class UnsignedNodeAnnouncement {
1201 private:
1202         LDKUnsignedNodeAnnouncement self;
1203 public:
1204         UnsignedNodeAnnouncement(const UnsignedNodeAnnouncement&) = delete;
1205         UnsignedNodeAnnouncement(UnsignedNodeAnnouncement&& o) : self(o.self) { memset(&o, 0, sizeof(UnsignedNodeAnnouncement)); }
1206         UnsignedNodeAnnouncement(LDKUnsignedNodeAnnouncement&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUnsignedNodeAnnouncement)); }
1207         operator LDKUnsignedNodeAnnouncement() && { LDKUnsignedNodeAnnouncement res = self; memset(&self, 0, sizeof(LDKUnsignedNodeAnnouncement)); return res; }
1208         ~UnsignedNodeAnnouncement() { UnsignedNodeAnnouncement_free(self); }
1209         UnsignedNodeAnnouncement& operator=(UnsignedNodeAnnouncement&& o) { UnsignedNodeAnnouncement_free(self); self = o.self; memset(&o, 0, sizeof(UnsignedNodeAnnouncement)); return *this; }
1210         LDKUnsignedNodeAnnouncement* operator &() { return &self; }
1211         LDKUnsignedNodeAnnouncement* operator ->() { return &self; }
1212         const LDKUnsignedNodeAnnouncement* operator &() const { return &self; }
1213         const LDKUnsignedNodeAnnouncement* operator ->() const { return &self; }
1214 };
1215 class NodeAnnouncement {
1216 private:
1217         LDKNodeAnnouncement self;
1218 public:
1219         NodeAnnouncement(const NodeAnnouncement&) = delete;
1220         NodeAnnouncement(NodeAnnouncement&& o) : self(o.self) { memset(&o, 0, sizeof(NodeAnnouncement)); }
1221         NodeAnnouncement(LDKNodeAnnouncement&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKNodeAnnouncement)); }
1222         operator LDKNodeAnnouncement() && { LDKNodeAnnouncement res = self; memset(&self, 0, sizeof(LDKNodeAnnouncement)); return res; }
1223         ~NodeAnnouncement() { NodeAnnouncement_free(self); }
1224         NodeAnnouncement& operator=(NodeAnnouncement&& o) { NodeAnnouncement_free(self); self = o.self; memset(&o, 0, sizeof(NodeAnnouncement)); return *this; }
1225         LDKNodeAnnouncement* operator &() { return &self; }
1226         LDKNodeAnnouncement* operator ->() { return &self; }
1227         const LDKNodeAnnouncement* operator &() const { return &self; }
1228         const LDKNodeAnnouncement* operator ->() const { return &self; }
1229 };
1230 class UnsignedChannelAnnouncement {
1231 private:
1232         LDKUnsignedChannelAnnouncement self;
1233 public:
1234         UnsignedChannelAnnouncement(const UnsignedChannelAnnouncement&) = delete;
1235         UnsignedChannelAnnouncement(UnsignedChannelAnnouncement&& o) : self(o.self) { memset(&o, 0, sizeof(UnsignedChannelAnnouncement)); }
1236         UnsignedChannelAnnouncement(LDKUnsignedChannelAnnouncement&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUnsignedChannelAnnouncement)); }
1237         operator LDKUnsignedChannelAnnouncement() && { LDKUnsignedChannelAnnouncement res = self; memset(&self, 0, sizeof(LDKUnsignedChannelAnnouncement)); return res; }
1238         ~UnsignedChannelAnnouncement() { UnsignedChannelAnnouncement_free(self); }
1239         UnsignedChannelAnnouncement& operator=(UnsignedChannelAnnouncement&& o) { UnsignedChannelAnnouncement_free(self); self = o.self; memset(&o, 0, sizeof(UnsignedChannelAnnouncement)); return *this; }
1240         LDKUnsignedChannelAnnouncement* operator &() { return &self; }
1241         LDKUnsignedChannelAnnouncement* operator ->() { return &self; }
1242         const LDKUnsignedChannelAnnouncement* operator &() const { return &self; }
1243         const LDKUnsignedChannelAnnouncement* operator ->() const { return &self; }
1244 };
1245 class ChannelAnnouncement {
1246 private:
1247         LDKChannelAnnouncement self;
1248 public:
1249         ChannelAnnouncement(const ChannelAnnouncement&) = delete;
1250         ChannelAnnouncement(ChannelAnnouncement&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelAnnouncement)); }
1251         ChannelAnnouncement(LDKChannelAnnouncement&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelAnnouncement)); }
1252         operator LDKChannelAnnouncement() && { LDKChannelAnnouncement res = self; memset(&self, 0, sizeof(LDKChannelAnnouncement)); return res; }
1253         ~ChannelAnnouncement() { ChannelAnnouncement_free(self); }
1254         ChannelAnnouncement& operator=(ChannelAnnouncement&& o) { ChannelAnnouncement_free(self); self = o.self; memset(&o, 0, sizeof(ChannelAnnouncement)); return *this; }
1255         LDKChannelAnnouncement* operator &() { return &self; }
1256         LDKChannelAnnouncement* operator ->() { return &self; }
1257         const LDKChannelAnnouncement* operator &() const { return &self; }
1258         const LDKChannelAnnouncement* operator ->() const { return &self; }
1259 };
1260 class UnsignedChannelUpdate {
1261 private:
1262         LDKUnsignedChannelUpdate self;
1263 public:
1264         UnsignedChannelUpdate(const UnsignedChannelUpdate&) = delete;
1265         UnsignedChannelUpdate(UnsignedChannelUpdate&& o) : self(o.self) { memset(&o, 0, sizeof(UnsignedChannelUpdate)); }
1266         UnsignedChannelUpdate(LDKUnsignedChannelUpdate&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKUnsignedChannelUpdate)); }
1267         operator LDKUnsignedChannelUpdate() && { LDKUnsignedChannelUpdate res = self; memset(&self, 0, sizeof(LDKUnsignedChannelUpdate)); return res; }
1268         ~UnsignedChannelUpdate() { UnsignedChannelUpdate_free(self); }
1269         UnsignedChannelUpdate& operator=(UnsignedChannelUpdate&& o) { UnsignedChannelUpdate_free(self); self = o.self; memset(&o, 0, sizeof(UnsignedChannelUpdate)); return *this; }
1270         LDKUnsignedChannelUpdate* operator &() { return &self; }
1271         LDKUnsignedChannelUpdate* operator ->() { return &self; }
1272         const LDKUnsignedChannelUpdate* operator &() const { return &self; }
1273         const LDKUnsignedChannelUpdate* operator ->() const { return &self; }
1274 };
1275 class ChannelUpdate {
1276 private:
1277         LDKChannelUpdate self;
1278 public:
1279         ChannelUpdate(const ChannelUpdate&) = delete;
1280         ChannelUpdate(ChannelUpdate&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelUpdate)); }
1281         ChannelUpdate(LDKChannelUpdate&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelUpdate)); }
1282         operator LDKChannelUpdate() && { LDKChannelUpdate res = self; memset(&self, 0, sizeof(LDKChannelUpdate)); return res; }
1283         ~ChannelUpdate() { ChannelUpdate_free(self); }
1284         ChannelUpdate& operator=(ChannelUpdate&& o) { ChannelUpdate_free(self); self = o.self; memset(&o, 0, sizeof(ChannelUpdate)); return *this; }
1285         LDKChannelUpdate* operator &() { return &self; }
1286         LDKChannelUpdate* operator ->() { return &self; }
1287         const LDKChannelUpdate* operator &() const { return &self; }
1288         const LDKChannelUpdate* operator ->() const { return &self; }
1289 };
1290 class QueryChannelRange {
1291 private:
1292         LDKQueryChannelRange self;
1293 public:
1294         QueryChannelRange(const QueryChannelRange&) = delete;
1295         QueryChannelRange(QueryChannelRange&& o) : self(o.self) { memset(&o, 0, sizeof(QueryChannelRange)); }
1296         QueryChannelRange(LDKQueryChannelRange&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKQueryChannelRange)); }
1297         operator LDKQueryChannelRange() && { LDKQueryChannelRange res = self; memset(&self, 0, sizeof(LDKQueryChannelRange)); return res; }
1298         ~QueryChannelRange() { QueryChannelRange_free(self); }
1299         QueryChannelRange& operator=(QueryChannelRange&& o) { QueryChannelRange_free(self); self = o.self; memset(&o, 0, sizeof(QueryChannelRange)); return *this; }
1300         LDKQueryChannelRange* operator &() { return &self; }
1301         LDKQueryChannelRange* operator ->() { return &self; }
1302         const LDKQueryChannelRange* operator &() const { return &self; }
1303         const LDKQueryChannelRange* operator ->() const { return &self; }
1304 };
1305 class ReplyChannelRange {
1306 private:
1307         LDKReplyChannelRange self;
1308 public:
1309         ReplyChannelRange(const ReplyChannelRange&) = delete;
1310         ReplyChannelRange(ReplyChannelRange&& o) : self(o.self) { memset(&o, 0, sizeof(ReplyChannelRange)); }
1311         ReplyChannelRange(LDKReplyChannelRange&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKReplyChannelRange)); }
1312         operator LDKReplyChannelRange() && { LDKReplyChannelRange res = self; memset(&self, 0, sizeof(LDKReplyChannelRange)); return res; }
1313         ~ReplyChannelRange() { ReplyChannelRange_free(self); }
1314         ReplyChannelRange& operator=(ReplyChannelRange&& o) { ReplyChannelRange_free(self); self = o.self; memset(&o, 0, sizeof(ReplyChannelRange)); return *this; }
1315         LDKReplyChannelRange* operator &() { return &self; }
1316         LDKReplyChannelRange* operator ->() { return &self; }
1317         const LDKReplyChannelRange* operator &() const { return &self; }
1318         const LDKReplyChannelRange* operator ->() const { return &self; }
1319 };
1320 class QueryShortChannelIds {
1321 private:
1322         LDKQueryShortChannelIds self;
1323 public:
1324         QueryShortChannelIds(const QueryShortChannelIds&) = delete;
1325         QueryShortChannelIds(QueryShortChannelIds&& o) : self(o.self) { memset(&o, 0, sizeof(QueryShortChannelIds)); }
1326         QueryShortChannelIds(LDKQueryShortChannelIds&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKQueryShortChannelIds)); }
1327         operator LDKQueryShortChannelIds() && { LDKQueryShortChannelIds res = self; memset(&self, 0, sizeof(LDKQueryShortChannelIds)); return res; }
1328         ~QueryShortChannelIds() { QueryShortChannelIds_free(self); }
1329         QueryShortChannelIds& operator=(QueryShortChannelIds&& o) { QueryShortChannelIds_free(self); self = o.self; memset(&o, 0, sizeof(QueryShortChannelIds)); return *this; }
1330         LDKQueryShortChannelIds* operator &() { return &self; }
1331         LDKQueryShortChannelIds* operator ->() { return &self; }
1332         const LDKQueryShortChannelIds* operator &() const { return &self; }
1333         const LDKQueryShortChannelIds* operator ->() const { return &self; }
1334 };
1335 class ReplyShortChannelIdsEnd {
1336 private:
1337         LDKReplyShortChannelIdsEnd self;
1338 public:
1339         ReplyShortChannelIdsEnd(const ReplyShortChannelIdsEnd&) = delete;
1340         ReplyShortChannelIdsEnd(ReplyShortChannelIdsEnd&& o) : self(o.self) { memset(&o, 0, sizeof(ReplyShortChannelIdsEnd)); }
1341         ReplyShortChannelIdsEnd(LDKReplyShortChannelIdsEnd&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKReplyShortChannelIdsEnd)); }
1342         operator LDKReplyShortChannelIdsEnd() && { LDKReplyShortChannelIdsEnd res = self; memset(&self, 0, sizeof(LDKReplyShortChannelIdsEnd)); return res; }
1343         ~ReplyShortChannelIdsEnd() { ReplyShortChannelIdsEnd_free(self); }
1344         ReplyShortChannelIdsEnd& operator=(ReplyShortChannelIdsEnd&& o) { ReplyShortChannelIdsEnd_free(self); self = o.self; memset(&o, 0, sizeof(ReplyShortChannelIdsEnd)); return *this; }
1345         LDKReplyShortChannelIdsEnd* operator &() { return &self; }
1346         LDKReplyShortChannelIdsEnd* operator ->() { return &self; }
1347         const LDKReplyShortChannelIdsEnd* operator &() const { return &self; }
1348         const LDKReplyShortChannelIdsEnd* operator ->() const { return &self; }
1349 };
1350 class GossipTimestampFilter {
1351 private:
1352         LDKGossipTimestampFilter self;
1353 public:
1354         GossipTimestampFilter(const GossipTimestampFilter&) = delete;
1355         GossipTimestampFilter(GossipTimestampFilter&& o) : self(o.self) { memset(&o, 0, sizeof(GossipTimestampFilter)); }
1356         GossipTimestampFilter(LDKGossipTimestampFilter&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKGossipTimestampFilter)); }
1357         operator LDKGossipTimestampFilter() && { LDKGossipTimestampFilter res = self; memset(&self, 0, sizeof(LDKGossipTimestampFilter)); return res; }
1358         ~GossipTimestampFilter() { GossipTimestampFilter_free(self); }
1359         GossipTimestampFilter& operator=(GossipTimestampFilter&& o) { GossipTimestampFilter_free(self); self = o.self; memset(&o, 0, sizeof(GossipTimestampFilter)); return *this; }
1360         LDKGossipTimestampFilter* operator &() { return &self; }
1361         LDKGossipTimestampFilter* operator ->() { return &self; }
1362         const LDKGossipTimestampFilter* operator &() const { return &self; }
1363         const LDKGossipTimestampFilter* operator ->() const { return &self; }
1364 };
1365 class ErrorAction {
1366 private:
1367         LDKErrorAction self;
1368 public:
1369         ErrorAction(const ErrorAction&) = delete;
1370         ErrorAction(ErrorAction&& o) : self(o.self) { memset(&o, 0, sizeof(ErrorAction)); }
1371         ErrorAction(LDKErrorAction&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKErrorAction)); }
1372         operator LDKErrorAction() && { LDKErrorAction res = self; memset(&self, 0, sizeof(LDKErrorAction)); return res; }
1373         ~ErrorAction() { ErrorAction_free(self); }
1374         ErrorAction& operator=(ErrorAction&& o) { ErrorAction_free(self); self = o.self; memset(&o, 0, sizeof(ErrorAction)); return *this; }
1375         LDKErrorAction* operator &() { return &self; }
1376         LDKErrorAction* operator ->() { return &self; }
1377         const LDKErrorAction* operator &() const { return &self; }
1378         const LDKErrorAction* operator ->() const { return &self; }
1379 };
1380 class LightningError {
1381 private:
1382         LDKLightningError self;
1383 public:
1384         LightningError(const LightningError&) = delete;
1385         LightningError(LightningError&& o) : self(o.self) { memset(&o, 0, sizeof(LightningError)); }
1386         LightningError(LDKLightningError&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKLightningError)); }
1387         operator LDKLightningError() && { LDKLightningError res = self; memset(&self, 0, sizeof(LDKLightningError)); return res; }
1388         ~LightningError() { LightningError_free(self); }
1389         LightningError& operator=(LightningError&& o) { LightningError_free(self); self = o.self; memset(&o, 0, sizeof(LightningError)); return *this; }
1390         LDKLightningError* operator &() { return &self; }
1391         LDKLightningError* operator ->() { return &self; }
1392         const LDKLightningError* operator &() const { return &self; }
1393         const LDKLightningError* operator ->() const { return &self; }
1394 };
1395 class CommitmentUpdate {
1396 private:
1397         LDKCommitmentUpdate self;
1398 public:
1399         CommitmentUpdate(const CommitmentUpdate&) = delete;
1400         CommitmentUpdate(CommitmentUpdate&& o) : self(o.self) { memset(&o, 0, sizeof(CommitmentUpdate)); }
1401         CommitmentUpdate(LDKCommitmentUpdate&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCommitmentUpdate)); }
1402         operator LDKCommitmentUpdate() && { LDKCommitmentUpdate res = self; memset(&self, 0, sizeof(LDKCommitmentUpdate)); return res; }
1403         ~CommitmentUpdate() { CommitmentUpdate_free(self); }
1404         CommitmentUpdate& operator=(CommitmentUpdate&& o) { CommitmentUpdate_free(self); self = o.self; memset(&o, 0, sizeof(CommitmentUpdate)); return *this; }
1405         LDKCommitmentUpdate* operator &() { return &self; }
1406         LDKCommitmentUpdate* operator ->() { return &self; }
1407         const LDKCommitmentUpdate* operator &() const { return &self; }
1408         const LDKCommitmentUpdate* operator ->() const { return &self; }
1409 };
1410 class HTLCFailChannelUpdate {
1411 private:
1412         LDKHTLCFailChannelUpdate self;
1413 public:
1414         HTLCFailChannelUpdate(const HTLCFailChannelUpdate&) = delete;
1415         HTLCFailChannelUpdate(HTLCFailChannelUpdate&& o) : self(o.self) { memset(&o, 0, sizeof(HTLCFailChannelUpdate)); }
1416         HTLCFailChannelUpdate(LDKHTLCFailChannelUpdate&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKHTLCFailChannelUpdate)); }
1417         operator LDKHTLCFailChannelUpdate() && { LDKHTLCFailChannelUpdate res = self; memset(&self, 0, sizeof(LDKHTLCFailChannelUpdate)); return res; }
1418         ~HTLCFailChannelUpdate() { HTLCFailChannelUpdate_free(self); }
1419         HTLCFailChannelUpdate& operator=(HTLCFailChannelUpdate&& o) { HTLCFailChannelUpdate_free(self); self = o.self; memset(&o, 0, sizeof(HTLCFailChannelUpdate)); return *this; }
1420         LDKHTLCFailChannelUpdate* operator &() { return &self; }
1421         LDKHTLCFailChannelUpdate* operator ->() { return &self; }
1422         const LDKHTLCFailChannelUpdate* operator &() const { return &self; }
1423         const LDKHTLCFailChannelUpdate* operator ->() const { return &self; }
1424 };
1425 class ChannelMessageHandler {
1426 private:
1427         LDKChannelMessageHandler self;
1428 public:
1429         ChannelMessageHandler(const ChannelMessageHandler&) = delete;
1430         ChannelMessageHandler(ChannelMessageHandler&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelMessageHandler)); }
1431         ChannelMessageHandler(LDKChannelMessageHandler&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelMessageHandler)); }
1432         operator LDKChannelMessageHandler() && { LDKChannelMessageHandler res = self; memset(&self, 0, sizeof(LDKChannelMessageHandler)); return res; }
1433         ~ChannelMessageHandler() { ChannelMessageHandler_free(self); }
1434         ChannelMessageHandler& operator=(ChannelMessageHandler&& o) { ChannelMessageHandler_free(self); self = o.self; memset(&o, 0, sizeof(ChannelMessageHandler)); return *this; }
1435         LDKChannelMessageHandler* operator &() { return &self; }
1436         LDKChannelMessageHandler* operator ->() { return &self; }
1437         const LDKChannelMessageHandler* operator &() const { return &self; }
1438         const LDKChannelMessageHandler* operator ->() const { return &self; }
1439 };
1440 class RoutingMessageHandler {
1441 private:
1442         LDKRoutingMessageHandler self;
1443 public:
1444         RoutingMessageHandler(const RoutingMessageHandler&) = delete;
1445         RoutingMessageHandler(RoutingMessageHandler&& o) : self(o.self) { memset(&o, 0, sizeof(RoutingMessageHandler)); }
1446         RoutingMessageHandler(LDKRoutingMessageHandler&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKRoutingMessageHandler)); }
1447         operator LDKRoutingMessageHandler() && { LDKRoutingMessageHandler res = self; memset(&self, 0, sizeof(LDKRoutingMessageHandler)); return res; }
1448         ~RoutingMessageHandler() { RoutingMessageHandler_free(self); }
1449         RoutingMessageHandler& operator=(RoutingMessageHandler&& o) { RoutingMessageHandler_free(self); self = o.self; memset(&o, 0, sizeof(RoutingMessageHandler)); return *this; }
1450         LDKRoutingMessageHandler* operator &() { return &self; }
1451         LDKRoutingMessageHandler* operator ->() { return &self; }
1452         const LDKRoutingMessageHandler* operator &() const { return &self; }
1453         const LDKRoutingMessageHandler* operator ->() const { return &self; }
1454 };
1455 class Level {
1456 private:
1457         LDKLevel self;
1458 public:
1459         Level(const Level&) = delete;
1460         Level(Level&& o) : self(o.self) { memset(&o, 0, sizeof(Level)); }
1461         Level(LDKLevel&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKLevel)); }
1462         operator LDKLevel() && { LDKLevel res = self; memset(&self, 0, sizeof(LDKLevel)); return res; }
1463         Level& operator=(Level&& o) { self = o.self; memset(&o, 0, sizeof(Level)); return *this; }
1464         LDKLevel* operator &() { return &self; }
1465         LDKLevel* operator ->() { return &self; }
1466         const LDKLevel* operator &() const { return &self; }
1467         const LDKLevel* operator ->() const { return &self; }
1468 };
1469 class Logger {
1470 private:
1471         LDKLogger self;
1472 public:
1473         Logger(const Logger&) = delete;
1474         Logger(Logger&& o) : self(o.self) { memset(&o, 0, sizeof(Logger)); }
1475         Logger(LDKLogger&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKLogger)); }
1476         operator LDKLogger() && { LDKLogger res = self; memset(&self, 0, sizeof(LDKLogger)); return res; }
1477         ~Logger() { Logger_free(self); }
1478         Logger& operator=(Logger&& o) { Logger_free(self); self = o.self; memset(&o, 0, sizeof(Logger)); return *this; }
1479         LDKLogger* operator &() { return &self; }
1480         LDKLogger* operator ->() { return &self; }
1481         const LDKLogger* operator &() const { return &self; }
1482         const LDKLogger* operator ->() const { return &self; }
1483 };
1484 class DelayedPaymentOutputDescriptor {
1485 private:
1486         LDKDelayedPaymentOutputDescriptor self;
1487 public:
1488         DelayedPaymentOutputDescriptor(const DelayedPaymentOutputDescriptor&) = delete;
1489         DelayedPaymentOutputDescriptor(DelayedPaymentOutputDescriptor&& o) : self(o.self) { memset(&o, 0, sizeof(DelayedPaymentOutputDescriptor)); }
1490         DelayedPaymentOutputDescriptor(LDKDelayedPaymentOutputDescriptor&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKDelayedPaymentOutputDescriptor)); }
1491         operator LDKDelayedPaymentOutputDescriptor() && { LDKDelayedPaymentOutputDescriptor res = self; memset(&self, 0, sizeof(LDKDelayedPaymentOutputDescriptor)); return res; }
1492         ~DelayedPaymentOutputDescriptor() { DelayedPaymentOutputDescriptor_free(self); }
1493         DelayedPaymentOutputDescriptor& operator=(DelayedPaymentOutputDescriptor&& o) { DelayedPaymentOutputDescriptor_free(self); self = o.self; memset(&o, 0, sizeof(DelayedPaymentOutputDescriptor)); return *this; }
1494         LDKDelayedPaymentOutputDescriptor* operator &() { return &self; }
1495         LDKDelayedPaymentOutputDescriptor* operator ->() { return &self; }
1496         const LDKDelayedPaymentOutputDescriptor* operator &() const { return &self; }
1497         const LDKDelayedPaymentOutputDescriptor* operator ->() const { return &self; }
1498 };
1499 class StaticPaymentOutputDescriptor {
1500 private:
1501         LDKStaticPaymentOutputDescriptor self;
1502 public:
1503         StaticPaymentOutputDescriptor(const StaticPaymentOutputDescriptor&) = delete;
1504         StaticPaymentOutputDescriptor(StaticPaymentOutputDescriptor&& o) : self(o.self) { memset(&o, 0, sizeof(StaticPaymentOutputDescriptor)); }
1505         StaticPaymentOutputDescriptor(LDKStaticPaymentOutputDescriptor&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKStaticPaymentOutputDescriptor)); }
1506         operator LDKStaticPaymentOutputDescriptor() && { LDKStaticPaymentOutputDescriptor res = self; memset(&self, 0, sizeof(LDKStaticPaymentOutputDescriptor)); return res; }
1507         ~StaticPaymentOutputDescriptor() { StaticPaymentOutputDescriptor_free(self); }
1508         StaticPaymentOutputDescriptor& operator=(StaticPaymentOutputDescriptor&& o) { StaticPaymentOutputDescriptor_free(self); self = o.self; memset(&o, 0, sizeof(StaticPaymentOutputDescriptor)); return *this; }
1509         LDKStaticPaymentOutputDescriptor* operator &() { return &self; }
1510         LDKStaticPaymentOutputDescriptor* operator ->() { return &self; }
1511         const LDKStaticPaymentOutputDescriptor* operator &() const { return &self; }
1512         const LDKStaticPaymentOutputDescriptor* operator ->() const { return &self; }
1513 };
1514 class SpendableOutputDescriptor {
1515 private:
1516         LDKSpendableOutputDescriptor self;
1517 public:
1518         SpendableOutputDescriptor(const SpendableOutputDescriptor&) = delete;
1519         SpendableOutputDescriptor(SpendableOutputDescriptor&& o) : self(o.self) { memset(&o, 0, sizeof(SpendableOutputDescriptor)); }
1520         SpendableOutputDescriptor(LDKSpendableOutputDescriptor&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKSpendableOutputDescriptor)); }
1521         operator LDKSpendableOutputDescriptor() && { LDKSpendableOutputDescriptor res = self; memset(&self, 0, sizeof(LDKSpendableOutputDescriptor)); return res; }
1522         ~SpendableOutputDescriptor() { SpendableOutputDescriptor_free(self); }
1523         SpendableOutputDescriptor& operator=(SpendableOutputDescriptor&& o) { SpendableOutputDescriptor_free(self); self = o.self; memset(&o, 0, sizeof(SpendableOutputDescriptor)); return *this; }
1524         LDKSpendableOutputDescriptor* operator &() { return &self; }
1525         LDKSpendableOutputDescriptor* operator ->() { return &self; }
1526         const LDKSpendableOutputDescriptor* operator &() const { return &self; }
1527         const LDKSpendableOutputDescriptor* operator ->() const { return &self; }
1528 };
1529 class BaseSign {
1530 private:
1531         LDKBaseSign self;
1532 public:
1533         BaseSign(const BaseSign&) = delete;
1534         BaseSign(BaseSign&& o) : self(o.self) { memset(&o, 0, sizeof(BaseSign)); }
1535         BaseSign(LDKBaseSign&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKBaseSign)); }
1536         operator LDKBaseSign() && { LDKBaseSign res = self; memset(&self, 0, sizeof(LDKBaseSign)); return res; }
1537         ~BaseSign() { BaseSign_free(self); }
1538         BaseSign& operator=(BaseSign&& o) { BaseSign_free(self); self = o.self; memset(&o, 0, sizeof(BaseSign)); return *this; }
1539         LDKBaseSign* operator &() { return &self; }
1540         LDKBaseSign* operator ->() { return &self; }
1541         const LDKBaseSign* operator &() const { return &self; }
1542         const LDKBaseSign* operator ->() const { return &self; }
1543 };
1544 class Sign {
1545 private:
1546         LDKSign self;
1547 public:
1548         Sign(const Sign&) = delete;
1549         Sign(Sign&& o) : self(o.self) { memset(&o, 0, sizeof(Sign)); }
1550         Sign(LDKSign&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKSign)); }
1551         operator LDKSign() && { LDKSign res = self; memset(&self, 0, sizeof(LDKSign)); return res; }
1552         ~Sign() { Sign_free(self); }
1553         Sign& operator=(Sign&& o) { Sign_free(self); self = o.self; memset(&o, 0, sizeof(Sign)); return *this; }
1554         LDKSign* operator &() { return &self; }
1555         LDKSign* operator ->() { return &self; }
1556         const LDKSign* operator &() const { return &self; }
1557         const LDKSign* operator ->() const { return &self; }
1558 };
1559 class KeysInterface {
1560 private:
1561         LDKKeysInterface self;
1562 public:
1563         KeysInterface(const KeysInterface&) = delete;
1564         KeysInterface(KeysInterface&& o) : self(o.self) { memset(&o, 0, sizeof(KeysInterface)); }
1565         KeysInterface(LDKKeysInterface&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKKeysInterface)); }
1566         operator LDKKeysInterface() && { LDKKeysInterface res = self; memset(&self, 0, sizeof(LDKKeysInterface)); return res; }
1567         ~KeysInterface() { KeysInterface_free(self); }
1568         KeysInterface& operator=(KeysInterface&& o) { KeysInterface_free(self); self = o.self; memset(&o, 0, sizeof(KeysInterface)); return *this; }
1569         LDKKeysInterface* operator &() { return &self; }
1570         LDKKeysInterface* operator ->() { return &self; }
1571         const LDKKeysInterface* operator &() const { return &self; }
1572         const LDKKeysInterface* operator ->() const { return &self; }
1573 };
1574 class InMemorySigner {
1575 private:
1576         LDKInMemorySigner self;
1577 public:
1578         InMemorySigner(const InMemorySigner&) = delete;
1579         InMemorySigner(InMemorySigner&& o) : self(o.self) { memset(&o, 0, sizeof(InMemorySigner)); }
1580         InMemorySigner(LDKInMemorySigner&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKInMemorySigner)); }
1581         operator LDKInMemorySigner() && { LDKInMemorySigner res = self; memset(&self, 0, sizeof(LDKInMemorySigner)); return res; }
1582         ~InMemorySigner() { InMemorySigner_free(self); }
1583         InMemorySigner& operator=(InMemorySigner&& o) { InMemorySigner_free(self); self = o.self; memset(&o, 0, sizeof(InMemorySigner)); return *this; }
1584         LDKInMemorySigner* operator &() { return &self; }
1585         LDKInMemorySigner* operator ->() { return &self; }
1586         const LDKInMemorySigner* operator &() const { return &self; }
1587         const LDKInMemorySigner* operator ->() const { return &self; }
1588 };
1589 class KeysManager {
1590 private:
1591         LDKKeysManager self;
1592 public:
1593         KeysManager(const KeysManager&) = delete;
1594         KeysManager(KeysManager&& o) : self(o.self) { memset(&o, 0, sizeof(KeysManager)); }
1595         KeysManager(LDKKeysManager&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKKeysManager)); }
1596         operator LDKKeysManager() && { LDKKeysManager res = self; memset(&self, 0, sizeof(LDKKeysManager)); return res; }
1597         ~KeysManager() { KeysManager_free(self); }
1598         KeysManager& operator=(KeysManager&& o) { KeysManager_free(self); self = o.self; memset(&o, 0, sizeof(KeysManager)); return *this; }
1599         LDKKeysManager* operator &() { return &self; }
1600         LDKKeysManager* operator ->() { return &self; }
1601         const LDKKeysManager* operator &() const { return &self; }
1602         const LDKKeysManager* operator ->() const { return &self; }
1603 };
1604 class ChainMonitor {
1605 private:
1606         LDKChainMonitor self;
1607 public:
1608         ChainMonitor(const ChainMonitor&) = delete;
1609         ChainMonitor(ChainMonitor&& o) : self(o.self) { memset(&o, 0, sizeof(ChainMonitor)); }
1610         ChainMonitor(LDKChainMonitor&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChainMonitor)); }
1611         operator LDKChainMonitor() && { LDKChainMonitor res = self; memset(&self, 0, sizeof(LDKChainMonitor)); return res; }
1612         ~ChainMonitor() { ChainMonitor_free(self); }
1613         ChainMonitor& operator=(ChainMonitor&& o) { ChainMonitor_free(self); self = o.self; memset(&o, 0, sizeof(ChainMonitor)); return *this; }
1614         LDKChainMonitor* operator &() { return &self; }
1615         LDKChainMonitor* operator ->() { return &self; }
1616         const LDKChainMonitor* operator &() const { return &self; }
1617         const LDKChainMonitor* operator ->() const { return &self; }
1618 };
1619 class FilesystemPersister {
1620 private:
1621         LDKFilesystemPersister self;
1622 public:
1623         FilesystemPersister(const FilesystemPersister&) = delete;
1624         FilesystemPersister(FilesystemPersister&& o) : self(o.self) { memset(&o, 0, sizeof(FilesystemPersister)); }
1625         FilesystemPersister(LDKFilesystemPersister&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKFilesystemPersister)); }
1626         operator LDKFilesystemPersister() && { LDKFilesystemPersister res = self; memset(&self, 0, sizeof(LDKFilesystemPersister)); return res; }
1627         ~FilesystemPersister() { FilesystemPersister_free(self); }
1628         FilesystemPersister& operator=(FilesystemPersister&& o) { FilesystemPersister_free(self); self = o.self; memset(&o, 0, sizeof(FilesystemPersister)); return *this; }
1629         LDKFilesystemPersister* operator &() { return &self; }
1630         LDKFilesystemPersister* operator ->() { return &self; }
1631         const LDKFilesystemPersister* operator &() const { return &self; }
1632         const LDKFilesystemPersister* operator ->() const { return &self; }
1633 };
1634 class ChannelManager {
1635 private:
1636         LDKChannelManager self;
1637 public:
1638         ChannelManager(const ChannelManager&) = delete;
1639         ChannelManager(ChannelManager&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelManager)); }
1640         ChannelManager(LDKChannelManager&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelManager)); }
1641         operator LDKChannelManager() && { LDKChannelManager res = self; memset(&self, 0, sizeof(LDKChannelManager)); return res; }
1642         ~ChannelManager() { ChannelManager_free(self); }
1643         ChannelManager& operator=(ChannelManager&& o) { ChannelManager_free(self); self = o.self; memset(&o, 0, sizeof(ChannelManager)); return *this; }
1644         LDKChannelManager* operator &() { return &self; }
1645         LDKChannelManager* operator ->() { return &self; }
1646         const LDKChannelManager* operator &() const { return &self; }
1647         const LDKChannelManager* operator ->() const { return &self; }
1648 };
1649 class ChainParameters {
1650 private:
1651         LDKChainParameters self;
1652 public:
1653         ChainParameters(const ChainParameters&) = delete;
1654         ChainParameters(ChainParameters&& o) : self(o.self) { memset(&o, 0, sizeof(ChainParameters)); }
1655         ChainParameters(LDKChainParameters&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChainParameters)); }
1656         operator LDKChainParameters() && { LDKChainParameters res = self; memset(&self, 0, sizeof(LDKChainParameters)); return res; }
1657         ~ChainParameters() { ChainParameters_free(self); }
1658         ChainParameters& operator=(ChainParameters&& o) { ChainParameters_free(self); self = o.self; memset(&o, 0, sizeof(ChainParameters)); return *this; }
1659         LDKChainParameters* operator &() { return &self; }
1660         LDKChainParameters* operator ->() { return &self; }
1661         const LDKChainParameters* operator &() const { return &self; }
1662         const LDKChainParameters* operator ->() const { return &self; }
1663 };
1664 class BestBlock {
1665 private:
1666         LDKBestBlock self;
1667 public:
1668         BestBlock(const BestBlock&) = delete;
1669         BestBlock(BestBlock&& o) : self(o.self) { memset(&o, 0, sizeof(BestBlock)); }
1670         BestBlock(LDKBestBlock&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKBestBlock)); }
1671         operator LDKBestBlock() && { LDKBestBlock res = self; memset(&self, 0, sizeof(LDKBestBlock)); return res; }
1672         ~BestBlock() { BestBlock_free(self); }
1673         BestBlock& operator=(BestBlock&& o) { BestBlock_free(self); self = o.self; memset(&o, 0, sizeof(BestBlock)); return *this; }
1674         LDKBestBlock* operator &() { return &self; }
1675         LDKBestBlock* operator ->() { return &self; }
1676         const LDKBestBlock* operator &() const { return &self; }
1677         const LDKBestBlock* operator ->() const { return &self; }
1678 };
1679 class ChannelDetails {
1680 private:
1681         LDKChannelDetails self;
1682 public:
1683         ChannelDetails(const ChannelDetails&) = delete;
1684         ChannelDetails(ChannelDetails&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelDetails)); }
1685         ChannelDetails(LDKChannelDetails&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelDetails)); }
1686         operator LDKChannelDetails() && { LDKChannelDetails res = self; memset(&self, 0, sizeof(LDKChannelDetails)); return res; }
1687         ~ChannelDetails() { ChannelDetails_free(self); }
1688         ChannelDetails& operator=(ChannelDetails&& o) { ChannelDetails_free(self); self = o.self; memset(&o, 0, sizeof(ChannelDetails)); return *this; }
1689         LDKChannelDetails* operator &() { return &self; }
1690         LDKChannelDetails* operator ->() { return &self; }
1691         const LDKChannelDetails* operator &() const { return &self; }
1692         const LDKChannelDetails* operator ->() const { return &self; }
1693 };
1694 class PaymentSendFailure {
1695 private:
1696         LDKPaymentSendFailure self;
1697 public:
1698         PaymentSendFailure(const PaymentSendFailure&) = delete;
1699         PaymentSendFailure(PaymentSendFailure&& o) : self(o.self) { memset(&o, 0, sizeof(PaymentSendFailure)); }
1700         PaymentSendFailure(LDKPaymentSendFailure&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKPaymentSendFailure)); }
1701         operator LDKPaymentSendFailure() && { LDKPaymentSendFailure res = self; memset(&self, 0, sizeof(LDKPaymentSendFailure)); return res; }
1702         ~PaymentSendFailure() { PaymentSendFailure_free(self); }
1703         PaymentSendFailure& operator=(PaymentSendFailure&& o) { PaymentSendFailure_free(self); self = o.self; memset(&o, 0, sizeof(PaymentSendFailure)); return *this; }
1704         LDKPaymentSendFailure* operator &() { return &self; }
1705         LDKPaymentSendFailure* operator ->() { return &self; }
1706         const LDKPaymentSendFailure* operator &() const { return &self; }
1707         const LDKPaymentSendFailure* operator ->() const { return &self; }
1708 };
1709 class ChannelManagerReadArgs {
1710 private:
1711         LDKChannelManagerReadArgs self;
1712 public:
1713         ChannelManagerReadArgs(const ChannelManagerReadArgs&) = delete;
1714         ChannelManagerReadArgs(ChannelManagerReadArgs&& o) : self(o.self) { memset(&o, 0, sizeof(ChannelManagerReadArgs)); }
1715         ChannelManagerReadArgs(LDKChannelManagerReadArgs&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKChannelManagerReadArgs)); }
1716         operator LDKChannelManagerReadArgs() && { LDKChannelManagerReadArgs res = self; memset(&self, 0, sizeof(LDKChannelManagerReadArgs)); return res; }
1717         ~ChannelManagerReadArgs() { ChannelManagerReadArgs_free(self); }
1718         ChannelManagerReadArgs& operator=(ChannelManagerReadArgs&& o) { ChannelManagerReadArgs_free(self); self = o.self; memset(&o, 0, sizeof(ChannelManagerReadArgs)); return *this; }
1719         LDKChannelManagerReadArgs* operator &() { return &self; }
1720         LDKChannelManagerReadArgs* operator ->() { return &self; }
1721         const LDKChannelManagerReadArgs* operator &() const { return &self; }
1722         const LDKChannelManagerReadArgs* operator ->() const { return &self; }
1723 };
1724 class CVec_SpendableOutputDescriptorZ {
1725 private:
1726         LDKCVec_SpendableOutputDescriptorZ self;
1727 public:
1728         CVec_SpendableOutputDescriptorZ(const CVec_SpendableOutputDescriptorZ&) = delete;
1729         CVec_SpendableOutputDescriptorZ(CVec_SpendableOutputDescriptorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_SpendableOutputDescriptorZ)); }
1730         CVec_SpendableOutputDescriptorZ(LDKCVec_SpendableOutputDescriptorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_SpendableOutputDescriptorZ)); }
1731         operator LDKCVec_SpendableOutputDescriptorZ() && { LDKCVec_SpendableOutputDescriptorZ res = self; memset(&self, 0, sizeof(LDKCVec_SpendableOutputDescriptorZ)); return res; }
1732         ~CVec_SpendableOutputDescriptorZ() { CVec_SpendableOutputDescriptorZ_free(self); }
1733         CVec_SpendableOutputDescriptorZ& operator=(CVec_SpendableOutputDescriptorZ&& o) { CVec_SpendableOutputDescriptorZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_SpendableOutputDescriptorZ)); return *this; }
1734         LDKCVec_SpendableOutputDescriptorZ* operator &() { return &self; }
1735         LDKCVec_SpendableOutputDescriptorZ* operator ->() { return &self; }
1736         const LDKCVec_SpendableOutputDescriptorZ* operator &() const { return &self; }
1737         const LDKCVec_SpendableOutputDescriptorZ* operator ->() const { return &self; }
1738 };
1739 class CResult_FundingCreatedDecodeErrorZ {
1740 private:
1741         LDKCResult_FundingCreatedDecodeErrorZ self;
1742 public:
1743         CResult_FundingCreatedDecodeErrorZ(const CResult_FundingCreatedDecodeErrorZ&) = delete;
1744         CResult_FundingCreatedDecodeErrorZ(CResult_FundingCreatedDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_FundingCreatedDecodeErrorZ)); }
1745         CResult_FundingCreatedDecodeErrorZ(LDKCResult_FundingCreatedDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_FundingCreatedDecodeErrorZ)); }
1746         operator LDKCResult_FundingCreatedDecodeErrorZ() && { LDKCResult_FundingCreatedDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_FundingCreatedDecodeErrorZ)); return res; }
1747         ~CResult_FundingCreatedDecodeErrorZ() { CResult_FundingCreatedDecodeErrorZ_free(self); }
1748         CResult_FundingCreatedDecodeErrorZ& operator=(CResult_FundingCreatedDecodeErrorZ&& o) { CResult_FundingCreatedDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_FundingCreatedDecodeErrorZ)); return *this; }
1749         LDKCResult_FundingCreatedDecodeErrorZ* operator &() { return &self; }
1750         LDKCResult_FundingCreatedDecodeErrorZ* operator ->() { return &self; }
1751         const LDKCResult_FundingCreatedDecodeErrorZ* operator &() const { return &self; }
1752         const LDKCResult_FundingCreatedDecodeErrorZ* operator ->() const { return &self; }
1753 };
1754 class CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ {
1755 private:
1756         LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ self;
1757 public:
1758         CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ(const CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ&) = delete;
1759         CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ(CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ)); }
1760         CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ(LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ)); }
1761         operator LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ() && { LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ res = self; memset(&self, 0, sizeof(LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ)); return res; }
1762         ~CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ() { CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(self); }
1763         CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ& operator=(CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ&& o) { CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ)); return *this; }
1764         LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ* operator &() { return &self; }
1765         LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ* operator ->() { return &self; }
1766         const LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ* operator &() const { return &self; }
1767         const LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ* operator ->() const { return &self; }
1768 };
1769 class CResult_HTLCUpdateDecodeErrorZ {
1770 private:
1771         LDKCResult_HTLCUpdateDecodeErrorZ self;
1772 public:
1773         CResult_HTLCUpdateDecodeErrorZ(const CResult_HTLCUpdateDecodeErrorZ&) = delete;
1774         CResult_HTLCUpdateDecodeErrorZ(CResult_HTLCUpdateDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_HTLCUpdateDecodeErrorZ)); }
1775         CResult_HTLCUpdateDecodeErrorZ(LDKCResult_HTLCUpdateDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_HTLCUpdateDecodeErrorZ)); }
1776         operator LDKCResult_HTLCUpdateDecodeErrorZ() && { LDKCResult_HTLCUpdateDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_HTLCUpdateDecodeErrorZ)); return res; }
1777         ~CResult_HTLCUpdateDecodeErrorZ() { CResult_HTLCUpdateDecodeErrorZ_free(self); }
1778         CResult_HTLCUpdateDecodeErrorZ& operator=(CResult_HTLCUpdateDecodeErrorZ&& o) { CResult_HTLCUpdateDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_HTLCUpdateDecodeErrorZ)); return *this; }
1779         LDKCResult_HTLCUpdateDecodeErrorZ* operator &() { return &self; }
1780         LDKCResult_HTLCUpdateDecodeErrorZ* operator ->() { return &self; }
1781         const LDKCResult_HTLCUpdateDecodeErrorZ* operator &() const { return &self; }
1782         const LDKCResult_HTLCUpdateDecodeErrorZ* operator ->() const { return &self; }
1783 };
1784 class CVec_C2Tuple_u32TxOutZZ {
1785 private:
1786         LDKCVec_C2Tuple_u32TxOutZZ self;
1787 public:
1788         CVec_C2Tuple_u32TxOutZZ(const CVec_C2Tuple_u32TxOutZZ&) = delete;
1789         CVec_C2Tuple_u32TxOutZZ(CVec_C2Tuple_u32TxOutZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_C2Tuple_u32TxOutZZ)); }
1790         CVec_C2Tuple_u32TxOutZZ(LDKCVec_C2Tuple_u32TxOutZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_C2Tuple_u32TxOutZZ)); }
1791         operator LDKCVec_C2Tuple_u32TxOutZZ() && { LDKCVec_C2Tuple_u32TxOutZZ res = self; memset(&self, 0, sizeof(LDKCVec_C2Tuple_u32TxOutZZ)); return res; }
1792         ~CVec_C2Tuple_u32TxOutZZ() { CVec_C2Tuple_u32TxOutZZ_free(self); }
1793         CVec_C2Tuple_u32TxOutZZ& operator=(CVec_C2Tuple_u32TxOutZZ&& o) { CVec_C2Tuple_u32TxOutZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_C2Tuple_u32TxOutZZ)); return *this; }
1794         LDKCVec_C2Tuple_u32TxOutZZ* operator &() { return &self; }
1795         LDKCVec_C2Tuple_u32TxOutZZ* operator ->() { return &self; }
1796         const LDKCVec_C2Tuple_u32TxOutZZ* operator &() const { return &self; }
1797         const LDKCVec_C2Tuple_u32TxOutZZ* operator ->() const { return &self; }
1798 };
1799 class CResult_ChannelAnnouncementDecodeErrorZ {
1800 private:
1801         LDKCResult_ChannelAnnouncementDecodeErrorZ self;
1802 public:
1803         CResult_ChannelAnnouncementDecodeErrorZ(const CResult_ChannelAnnouncementDecodeErrorZ&) = delete;
1804         CResult_ChannelAnnouncementDecodeErrorZ(CResult_ChannelAnnouncementDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelAnnouncementDecodeErrorZ)); }
1805         CResult_ChannelAnnouncementDecodeErrorZ(LDKCResult_ChannelAnnouncementDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelAnnouncementDecodeErrorZ)); }
1806         operator LDKCResult_ChannelAnnouncementDecodeErrorZ() && { LDKCResult_ChannelAnnouncementDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelAnnouncementDecodeErrorZ)); return res; }
1807         ~CResult_ChannelAnnouncementDecodeErrorZ() { CResult_ChannelAnnouncementDecodeErrorZ_free(self); }
1808         CResult_ChannelAnnouncementDecodeErrorZ& operator=(CResult_ChannelAnnouncementDecodeErrorZ&& o) { CResult_ChannelAnnouncementDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelAnnouncementDecodeErrorZ)); return *this; }
1809         LDKCResult_ChannelAnnouncementDecodeErrorZ* operator &() { return &self; }
1810         LDKCResult_ChannelAnnouncementDecodeErrorZ* operator ->() { return &self; }
1811         const LDKCResult_ChannelAnnouncementDecodeErrorZ* operator &() const { return &self; }
1812         const LDKCResult_ChannelAnnouncementDecodeErrorZ* operator ->() const { return &self; }
1813 };
1814 class CResult_ChannelInfoDecodeErrorZ {
1815 private:
1816         LDKCResult_ChannelInfoDecodeErrorZ self;
1817 public:
1818         CResult_ChannelInfoDecodeErrorZ(const CResult_ChannelInfoDecodeErrorZ&) = delete;
1819         CResult_ChannelInfoDecodeErrorZ(CResult_ChannelInfoDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelInfoDecodeErrorZ)); }
1820         CResult_ChannelInfoDecodeErrorZ(LDKCResult_ChannelInfoDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelInfoDecodeErrorZ)); }
1821         operator LDKCResult_ChannelInfoDecodeErrorZ() && { LDKCResult_ChannelInfoDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelInfoDecodeErrorZ)); return res; }
1822         ~CResult_ChannelInfoDecodeErrorZ() { CResult_ChannelInfoDecodeErrorZ_free(self); }
1823         CResult_ChannelInfoDecodeErrorZ& operator=(CResult_ChannelInfoDecodeErrorZ&& o) { CResult_ChannelInfoDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelInfoDecodeErrorZ)); return *this; }
1824         LDKCResult_ChannelInfoDecodeErrorZ* operator &() { return &self; }
1825         LDKCResult_ChannelInfoDecodeErrorZ* operator ->() { return &self; }
1826         const LDKCResult_ChannelInfoDecodeErrorZ* operator &() const { return &self; }
1827         const LDKCResult_ChannelInfoDecodeErrorZ* operator ->() const { return &self; }
1828 };
1829 class C2Tuple_SignatureCVec_SignatureZZ {
1830 private:
1831         LDKC2Tuple_SignatureCVec_SignatureZZ self;
1832 public:
1833         C2Tuple_SignatureCVec_SignatureZZ(const C2Tuple_SignatureCVec_SignatureZZ&) = delete;
1834         C2Tuple_SignatureCVec_SignatureZZ(C2Tuple_SignatureCVec_SignatureZZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_SignatureCVec_SignatureZZ)); }
1835         C2Tuple_SignatureCVec_SignatureZZ(LDKC2Tuple_SignatureCVec_SignatureZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_SignatureCVec_SignatureZZ)); }
1836         operator LDKC2Tuple_SignatureCVec_SignatureZZ() && { LDKC2Tuple_SignatureCVec_SignatureZZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_SignatureCVec_SignatureZZ)); return res; }
1837         ~C2Tuple_SignatureCVec_SignatureZZ() { C2Tuple_SignatureCVec_SignatureZZ_free(self); }
1838         C2Tuple_SignatureCVec_SignatureZZ& operator=(C2Tuple_SignatureCVec_SignatureZZ&& o) { C2Tuple_SignatureCVec_SignatureZZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_SignatureCVec_SignatureZZ)); return *this; }
1839         LDKC2Tuple_SignatureCVec_SignatureZZ* operator &() { return &self; }
1840         LDKC2Tuple_SignatureCVec_SignatureZZ* operator ->() { return &self; }
1841         const LDKC2Tuple_SignatureCVec_SignatureZZ* operator &() const { return &self; }
1842         const LDKC2Tuple_SignatureCVec_SignatureZZ* operator ->() const { return &self; }
1843 };
1844 class CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ {
1845 private:
1846         LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ self;
1847 public:
1848         CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ(const CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ&) = delete;
1849         CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ(CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ)); }
1850         CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ(LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ)); }
1851         operator LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ() && { LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ)); return res; }
1852         ~CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ() { CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ_free(self); }
1853         CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ& operator=(CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ&& o) { CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ)); return *this; }
1854         LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ* operator &() { return &self; }
1855         LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ* operator ->() { return &self; }
1856         const LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ* operator &() const { return &self; }
1857         const LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ* operator ->() const { return &self; }
1858 };
1859 class CResult_CVec_u8ZPeerHandleErrorZ {
1860 private:
1861         LDKCResult_CVec_u8ZPeerHandleErrorZ self;
1862 public:
1863         CResult_CVec_u8ZPeerHandleErrorZ(const CResult_CVec_u8ZPeerHandleErrorZ&) = delete;
1864         CResult_CVec_u8ZPeerHandleErrorZ(CResult_CVec_u8ZPeerHandleErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CVec_u8ZPeerHandleErrorZ)); }
1865         CResult_CVec_u8ZPeerHandleErrorZ(LDKCResult_CVec_u8ZPeerHandleErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CVec_u8ZPeerHandleErrorZ)); }
1866         operator LDKCResult_CVec_u8ZPeerHandleErrorZ() && { LDKCResult_CVec_u8ZPeerHandleErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_CVec_u8ZPeerHandleErrorZ)); return res; }
1867         ~CResult_CVec_u8ZPeerHandleErrorZ() { CResult_CVec_u8ZPeerHandleErrorZ_free(self); }
1868         CResult_CVec_u8ZPeerHandleErrorZ& operator=(CResult_CVec_u8ZPeerHandleErrorZ&& o) { CResult_CVec_u8ZPeerHandleErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CVec_u8ZPeerHandleErrorZ)); return *this; }
1869         LDKCResult_CVec_u8ZPeerHandleErrorZ* operator &() { return &self; }
1870         LDKCResult_CVec_u8ZPeerHandleErrorZ* operator ->() { return &self; }
1871         const LDKCResult_CVec_u8ZPeerHandleErrorZ* operator &() const { return &self; }
1872         const LDKCResult_CVec_u8ZPeerHandleErrorZ* operator ->() const { return &self; }
1873 };
1874 class CResult_ChannelMonitorUpdateDecodeErrorZ {
1875 private:
1876         LDKCResult_ChannelMonitorUpdateDecodeErrorZ self;
1877 public:
1878         CResult_ChannelMonitorUpdateDecodeErrorZ(const CResult_ChannelMonitorUpdateDecodeErrorZ&) = delete;
1879         CResult_ChannelMonitorUpdateDecodeErrorZ(CResult_ChannelMonitorUpdateDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelMonitorUpdateDecodeErrorZ)); }
1880         CResult_ChannelMonitorUpdateDecodeErrorZ(LDKCResult_ChannelMonitorUpdateDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelMonitorUpdateDecodeErrorZ)); }
1881         operator LDKCResult_ChannelMonitorUpdateDecodeErrorZ() && { LDKCResult_ChannelMonitorUpdateDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelMonitorUpdateDecodeErrorZ)); return res; }
1882         ~CResult_ChannelMonitorUpdateDecodeErrorZ() { CResult_ChannelMonitorUpdateDecodeErrorZ_free(self); }
1883         CResult_ChannelMonitorUpdateDecodeErrorZ& operator=(CResult_ChannelMonitorUpdateDecodeErrorZ&& o) { CResult_ChannelMonitorUpdateDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelMonitorUpdateDecodeErrorZ)); return *this; }
1884         LDKCResult_ChannelMonitorUpdateDecodeErrorZ* operator &() { return &self; }
1885         LDKCResult_ChannelMonitorUpdateDecodeErrorZ* operator ->() { return &self; }
1886         const LDKCResult_ChannelMonitorUpdateDecodeErrorZ* operator &() const { return &self; }
1887         const LDKCResult_ChannelMonitorUpdateDecodeErrorZ* operator ->() const { return &self; }
1888 };
1889 class CResult_InvoiceFeaturesDecodeErrorZ {
1890 private:
1891         LDKCResult_InvoiceFeaturesDecodeErrorZ self;
1892 public:
1893         CResult_InvoiceFeaturesDecodeErrorZ(const CResult_InvoiceFeaturesDecodeErrorZ&) = delete;
1894         CResult_InvoiceFeaturesDecodeErrorZ(CResult_InvoiceFeaturesDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_InvoiceFeaturesDecodeErrorZ)); }
1895         CResult_InvoiceFeaturesDecodeErrorZ(LDKCResult_InvoiceFeaturesDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_InvoiceFeaturesDecodeErrorZ)); }
1896         operator LDKCResult_InvoiceFeaturesDecodeErrorZ() && { LDKCResult_InvoiceFeaturesDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_InvoiceFeaturesDecodeErrorZ)); return res; }
1897         ~CResult_InvoiceFeaturesDecodeErrorZ() { CResult_InvoiceFeaturesDecodeErrorZ_free(self); }
1898         CResult_InvoiceFeaturesDecodeErrorZ& operator=(CResult_InvoiceFeaturesDecodeErrorZ&& o) { CResult_InvoiceFeaturesDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_InvoiceFeaturesDecodeErrorZ)); return *this; }
1899         LDKCResult_InvoiceFeaturesDecodeErrorZ* operator &() { return &self; }
1900         LDKCResult_InvoiceFeaturesDecodeErrorZ* operator ->() { return &self; }
1901         const LDKCResult_InvoiceFeaturesDecodeErrorZ* operator &() const { return &self; }
1902         const LDKCResult_InvoiceFeaturesDecodeErrorZ* operator ->() const { return &self; }
1903 };
1904 class COption_u64Z {
1905 private:
1906         LDKCOption_u64Z self;
1907 public:
1908         COption_u64Z(const COption_u64Z&) = delete;
1909         COption_u64Z(COption_u64Z&& o) : self(o.self) { memset(&o, 0, sizeof(COption_u64Z)); }
1910         COption_u64Z(LDKCOption_u64Z&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCOption_u64Z)); }
1911         operator LDKCOption_u64Z() && { LDKCOption_u64Z res = self; memset(&self, 0, sizeof(LDKCOption_u64Z)); return res; }
1912         ~COption_u64Z() { COption_u64Z_free(self); }
1913         COption_u64Z& operator=(COption_u64Z&& o) { COption_u64Z_free(self); self = o.self; memset(&o, 0, sizeof(COption_u64Z)); return *this; }
1914         LDKCOption_u64Z* operator &() { return &self; }
1915         LDKCOption_u64Z* operator ->() { return &self; }
1916         const LDKCOption_u64Z* operator &() const { return &self; }
1917         const LDKCOption_u64Z* operator ->() const { return &self; }
1918 };
1919 class CResult_TxOutAccessErrorZ {
1920 private:
1921         LDKCResult_TxOutAccessErrorZ self;
1922 public:
1923         CResult_TxOutAccessErrorZ(const CResult_TxOutAccessErrorZ&) = delete;
1924         CResult_TxOutAccessErrorZ(CResult_TxOutAccessErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_TxOutAccessErrorZ)); }
1925         CResult_TxOutAccessErrorZ(LDKCResult_TxOutAccessErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_TxOutAccessErrorZ)); }
1926         operator LDKCResult_TxOutAccessErrorZ() && { LDKCResult_TxOutAccessErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_TxOutAccessErrorZ)); return res; }
1927         ~CResult_TxOutAccessErrorZ() { CResult_TxOutAccessErrorZ_free(self); }
1928         CResult_TxOutAccessErrorZ& operator=(CResult_TxOutAccessErrorZ&& o) { CResult_TxOutAccessErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_TxOutAccessErrorZ)); return *this; }
1929         LDKCResult_TxOutAccessErrorZ* operator &() { return &self; }
1930         LDKCResult_TxOutAccessErrorZ* operator ->() { return &self; }
1931         const LDKCResult_TxOutAccessErrorZ* operator &() const { return &self; }
1932         const LDKCResult_TxOutAccessErrorZ* operator ->() const { return &self; }
1933 };
1934 class CResult_UnsignedNodeAnnouncementDecodeErrorZ {
1935 private:
1936         LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ self;
1937 public:
1938         CResult_UnsignedNodeAnnouncementDecodeErrorZ(const CResult_UnsignedNodeAnnouncementDecodeErrorZ&) = delete;
1939         CResult_UnsignedNodeAnnouncementDecodeErrorZ(CResult_UnsignedNodeAnnouncementDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UnsignedNodeAnnouncementDecodeErrorZ)); }
1940         CResult_UnsignedNodeAnnouncementDecodeErrorZ(LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ)); }
1941         operator LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ() && { LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ)); return res; }
1942         ~CResult_UnsignedNodeAnnouncementDecodeErrorZ() { CResult_UnsignedNodeAnnouncementDecodeErrorZ_free(self); }
1943         CResult_UnsignedNodeAnnouncementDecodeErrorZ& operator=(CResult_UnsignedNodeAnnouncementDecodeErrorZ&& o) { CResult_UnsignedNodeAnnouncementDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UnsignedNodeAnnouncementDecodeErrorZ)); return *this; }
1944         LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ* operator &() { return &self; }
1945         LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ* operator ->() { return &self; }
1946         const LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ* operator &() const { return &self; }
1947         const LDKCResult_UnsignedNodeAnnouncementDecodeErrorZ* operator ->() const { return &self; }
1948 };
1949 class CResult_ReplyChannelRangeDecodeErrorZ {
1950 private:
1951         LDKCResult_ReplyChannelRangeDecodeErrorZ self;
1952 public:
1953         CResult_ReplyChannelRangeDecodeErrorZ(const CResult_ReplyChannelRangeDecodeErrorZ&) = delete;
1954         CResult_ReplyChannelRangeDecodeErrorZ(CResult_ReplyChannelRangeDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ReplyChannelRangeDecodeErrorZ)); }
1955         CResult_ReplyChannelRangeDecodeErrorZ(LDKCResult_ReplyChannelRangeDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ReplyChannelRangeDecodeErrorZ)); }
1956         operator LDKCResult_ReplyChannelRangeDecodeErrorZ() && { LDKCResult_ReplyChannelRangeDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ReplyChannelRangeDecodeErrorZ)); return res; }
1957         ~CResult_ReplyChannelRangeDecodeErrorZ() { CResult_ReplyChannelRangeDecodeErrorZ_free(self); }
1958         CResult_ReplyChannelRangeDecodeErrorZ& operator=(CResult_ReplyChannelRangeDecodeErrorZ&& o) { CResult_ReplyChannelRangeDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ReplyChannelRangeDecodeErrorZ)); return *this; }
1959         LDKCResult_ReplyChannelRangeDecodeErrorZ* operator &() { return &self; }
1960         LDKCResult_ReplyChannelRangeDecodeErrorZ* operator ->() { return &self; }
1961         const LDKCResult_ReplyChannelRangeDecodeErrorZ* operator &() const { return &self; }
1962         const LDKCResult_ReplyChannelRangeDecodeErrorZ* operator ->() const { return &self; }
1963 };
1964 class CResult_GossipTimestampFilterDecodeErrorZ {
1965 private:
1966         LDKCResult_GossipTimestampFilterDecodeErrorZ self;
1967 public:
1968         CResult_GossipTimestampFilterDecodeErrorZ(const CResult_GossipTimestampFilterDecodeErrorZ&) = delete;
1969         CResult_GossipTimestampFilterDecodeErrorZ(CResult_GossipTimestampFilterDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_GossipTimestampFilterDecodeErrorZ)); }
1970         CResult_GossipTimestampFilterDecodeErrorZ(LDKCResult_GossipTimestampFilterDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_GossipTimestampFilterDecodeErrorZ)); }
1971         operator LDKCResult_GossipTimestampFilterDecodeErrorZ() && { LDKCResult_GossipTimestampFilterDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_GossipTimestampFilterDecodeErrorZ)); return res; }
1972         ~CResult_GossipTimestampFilterDecodeErrorZ() { CResult_GossipTimestampFilterDecodeErrorZ_free(self); }
1973         CResult_GossipTimestampFilterDecodeErrorZ& operator=(CResult_GossipTimestampFilterDecodeErrorZ&& o) { CResult_GossipTimestampFilterDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_GossipTimestampFilterDecodeErrorZ)); return *this; }
1974         LDKCResult_GossipTimestampFilterDecodeErrorZ* operator &() { return &self; }
1975         LDKCResult_GossipTimestampFilterDecodeErrorZ* operator ->() { return &self; }
1976         const LDKCResult_GossipTimestampFilterDecodeErrorZ* operator &() const { return &self; }
1977         const LDKCResult_GossipTimestampFilterDecodeErrorZ* operator ->() const { return &self; }
1978 };
1979 class CResult_ChannelReestablishDecodeErrorZ {
1980 private:
1981         LDKCResult_ChannelReestablishDecodeErrorZ self;
1982 public:
1983         CResult_ChannelReestablishDecodeErrorZ(const CResult_ChannelReestablishDecodeErrorZ&) = delete;
1984         CResult_ChannelReestablishDecodeErrorZ(CResult_ChannelReestablishDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelReestablishDecodeErrorZ)); }
1985         CResult_ChannelReestablishDecodeErrorZ(LDKCResult_ChannelReestablishDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelReestablishDecodeErrorZ)); }
1986         operator LDKCResult_ChannelReestablishDecodeErrorZ() && { LDKCResult_ChannelReestablishDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelReestablishDecodeErrorZ)); return res; }
1987         ~CResult_ChannelReestablishDecodeErrorZ() { CResult_ChannelReestablishDecodeErrorZ_free(self); }
1988         CResult_ChannelReestablishDecodeErrorZ& operator=(CResult_ChannelReestablishDecodeErrorZ&& o) { CResult_ChannelReestablishDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelReestablishDecodeErrorZ)); return *this; }
1989         LDKCResult_ChannelReestablishDecodeErrorZ* operator &() { return &self; }
1990         LDKCResult_ChannelReestablishDecodeErrorZ* operator ->() { return &self; }
1991         const LDKCResult_ChannelReestablishDecodeErrorZ* operator &() const { return &self; }
1992         const LDKCResult_ChannelReestablishDecodeErrorZ* operator ->() const { return &self; }
1993 };
1994 class CResult_CommitmentSignedDecodeErrorZ {
1995 private:
1996         LDKCResult_CommitmentSignedDecodeErrorZ self;
1997 public:
1998         CResult_CommitmentSignedDecodeErrorZ(const CResult_CommitmentSignedDecodeErrorZ&) = delete;
1999         CResult_CommitmentSignedDecodeErrorZ(CResult_CommitmentSignedDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CommitmentSignedDecodeErrorZ)); }
2000         CResult_CommitmentSignedDecodeErrorZ(LDKCResult_CommitmentSignedDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CommitmentSignedDecodeErrorZ)); }
2001         operator LDKCResult_CommitmentSignedDecodeErrorZ() && { LDKCResult_CommitmentSignedDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_CommitmentSignedDecodeErrorZ)); return res; }
2002         ~CResult_CommitmentSignedDecodeErrorZ() { CResult_CommitmentSignedDecodeErrorZ_free(self); }
2003         CResult_CommitmentSignedDecodeErrorZ& operator=(CResult_CommitmentSignedDecodeErrorZ&& o) { CResult_CommitmentSignedDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CommitmentSignedDecodeErrorZ)); return *this; }
2004         LDKCResult_CommitmentSignedDecodeErrorZ* operator &() { return &self; }
2005         LDKCResult_CommitmentSignedDecodeErrorZ* operator ->() { return &self; }
2006         const LDKCResult_CommitmentSignedDecodeErrorZ* operator &() const { return &self; }
2007         const LDKCResult_CommitmentSignedDecodeErrorZ* operator ->() const { return &self; }
2008 };
2009 class CVec_UpdateAddHTLCZ {
2010 private:
2011         LDKCVec_UpdateAddHTLCZ self;
2012 public:
2013         CVec_UpdateAddHTLCZ(const CVec_UpdateAddHTLCZ&) = delete;
2014         CVec_UpdateAddHTLCZ(CVec_UpdateAddHTLCZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_UpdateAddHTLCZ)); }
2015         CVec_UpdateAddHTLCZ(LDKCVec_UpdateAddHTLCZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_UpdateAddHTLCZ)); }
2016         operator LDKCVec_UpdateAddHTLCZ() && { LDKCVec_UpdateAddHTLCZ res = self; memset(&self, 0, sizeof(LDKCVec_UpdateAddHTLCZ)); return res; }
2017         ~CVec_UpdateAddHTLCZ() { CVec_UpdateAddHTLCZ_free(self); }
2018         CVec_UpdateAddHTLCZ& operator=(CVec_UpdateAddHTLCZ&& o) { CVec_UpdateAddHTLCZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_UpdateAddHTLCZ)); return *this; }
2019         LDKCVec_UpdateAddHTLCZ* operator &() { return &self; }
2020         LDKCVec_UpdateAddHTLCZ* operator ->() { return &self; }
2021         const LDKCVec_UpdateAddHTLCZ* operator &() const { return &self; }
2022         const LDKCVec_UpdateAddHTLCZ* operator ->() const { return &self; }
2023 };
2024 class COption_u32Z {
2025 private:
2026         LDKCOption_u32Z self;
2027 public:
2028         COption_u32Z(const COption_u32Z&) = delete;
2029         COption_u32Z(COption_u32Z&& o) : self(o.self) { memset(&o, 0, sizeof(COption_u32Z)); }
2030         COption_u32Z(LDKCOption_u32Z&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCOption_u32Z)); }
2031         operator LDKCOption_u32Z() && { LDKCOption_u32Z res = self; memset(&self, 0, sizeof(LDKCOption_u32Z)); return res; }
2032         ~COption_u32Z() { COption_u32Z_free(self); }
2033         COption_u32Z& operator=(COption_u32Z&& o) { COption_u32Z_free(self); self = o.self; memset(&o, 0, sizeof(COption_u32Z)); return *this; }
2034         LDKCOption_u32Z* operator &() { return &self; }
2035         LDKCOption_u32Z* operator ->() { return &self; }
2036         const LDKCOption_u32Z* operator &() const { return &self; }
2037         const LDKCOption_u32Z* operator ->() const { return &self; }
2038 };
2039 class CResult_InitFeaturesDecodeErrorZ {
2040 private:
2041         LDKCResult_InitFeaturesDecodeErrorZ self;
2042 public:
2043         CResult_InitFeaturesDecodeErrorZ(const CResult_InitFeaturesDecodeErrorZ&) = delete;
2044         CResult_InitFeaturesDecodeErrorZ(CResult_InitFeaturesDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_InitFeaturesDecodeErrorZ)); }
2045         CResult_InitFeaturesDecodeErrorZ(LDKCResult_InitFeaturesDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_InitFeaturesDecodeErrorZ)); }
2046         operator LDKCResult_InitFeaturesDecodeErrorZ() && { LDKCResult_InitFeaturesDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_InitFeaturesDecodeErrorZ)); return res; }
2047         ~CResult_InitFeaturesDecodeErrorZ() { CResult_InitFeaturesDecodeErrorZ_free(self); }
2048         CResult_InitFeaturesDecodeErrorZ& operator=(CResult_InitFeaturesDecodeErrorZ&& o) { CResult_InitFeaturesDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_InitFeaturesDecodeErrorZ)); return *this; }
2049         LDKCResult_InitFeaturesDecodeErrorZ* operator &() { return &self; }
2050         LDKCResult_InitFeaturesDecodeErrorZ* operator ->() { return &self; }
2051         const LDKCResult_InitFeaturesDecodeErrorZ* operator &() const { return &self; }
2052         const LDKCResult_InitFeaturesDecodeErrorZ* operator ->() const { return &self; }
2053 };
2054 class CResult_CommitmentTransactionDecodeErrorZ {
2055 private:
2056         LDKCResult_CommitmentTransactionDecodeErrorZ self;
2057 public:
2058         CResult_CommitmentTransactionDecodeErrorZ(const CResult_CommitmentTransactionDecodeErrorZ&) = delete;
2059         CResult_CommitmentTransactionDecodeErrorZ(CResult_CommitmentTransactionDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CommitmentTransactionDecodeErrorZ)); }
2060         CResult_CommitmentTransactionDecodeErrorZ(LDKCResult_CommitmentTransactionDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CommitmentTransactionDecodeErrorZ)); }
2061         operator LDKCResult_CommitmentTransactionDecodeErrorZ() && { LDKCResult_CommitmentTransactionDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_CommitmentTransactionDecodeErrorZ)); return res; }
2062         ~CResult_CommitmentTransactionDecodeErrorZ() { CResult_CommitmentTransactionDecodeErrorZ_free(self); }
2063         CResult_CommitmentTransactionDecodeErrorZ& operator=(CResult_CommitmentTransactionDecodeErrorZ&& o) { CResult_CommitmentTransactionDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CommitmentTransactionDecodeErrorZ)); return *this; }
2064         LDKCResult_CommitmentTransactionDecodeErrorZ* operator &() { return &self; }
2065         LDKCResult_CommitmentTransactionDecodeErrorZ* operator ->() { return &self; }
2066         const LDKCResult_CommitmentTransactionDecodeErrorZ* operator &() const { return &self; }
2067         const LDKCResult_CommitmentTransactionDecodeErrorZ* operator ->() const { return &self; }
2068 };
2069 class COption_C2Tuple_usizeTransactionZZ {
2070 private:
2071         LDKCOption_C2Tuple_usizeTransactionZZ self;
2072 public:
2073         COption_C2Tuple_usizeTransactionZZ(const COption_C2Tuple_usizeTransactionZZ&) = delete;
2074         COption_C2Tuple_usizeTransactionZZ(COption_C2Tuple_usizeTransactionZZ&& o) : self(o.self) { memset(&o, 0, sizeof(COption_C2Tuple_usizeTransactionZZ)); }
2075         COption_C2Tuple_usizeTransactionZZ(LDKCOption_C2Tuple_usizeTransactionZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCOption_C2Tuple_usizeTransactionZZ)); }
2076         operator LDKCOption_C2Tuple_usizeTransactionZZ() && { LDKCOption_C2Tuple_usizeTransactionZZ res = self; memset(&self, 0, sizeof(LDKCOption_C2Tuple_usizeTransactionZZ)); return res; }
2077         ~COption_C2Tuple_usizeTransactionZZ() { COption_C2Tuple_usizeTransactionZZ_free(self); }
2078         COption_C2Tuple_usizeTransactionZZ& operator=(COption_C2Tuple_usizeTransactionZZ&& o) { COption_C2Tuple_usizeTransactionZZ_free(self); self = o.self; memset(&o, 0, sizeof(COption_C2Tuple_usizeTransactionZZ)); return *this; }
2079         LDKCOption_C2Tuple_usizeTransactionZZ* operator &() { return &self; }
2080         LDKCOption_C2Tuple_usizeTransactionZZ* operator ->() { return &self; }
2081         const LDKCOption_C2Tuple_usizeTransactionZZ* operator &() const { return &self; }
2082         const LDKCOption_C2Tuple_usizeTransactionZZ* operator ->() const { return &self; }
2083 };
2084 class CResult_PingDecodeErrorZ {
2085 private:
2086         LDKCResult_PingDecodeErrorZ self;
2087 public:
2088         CResult_PingDecodeErrorZ(const CResult_PingDecodeErrorZ&) = delete;
2089         CResult_PingDecodeErrorZ(CResult_PingDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_PingDecodeErrorZ)); }
2090         CResult_PingDecodeErrorZ(LDKCResult_PingDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_PingDecodeErrorZ)); }
2091         operator LDKCResult_PingDecodeErrorZ() && { LDKCResult_PingDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_PingDecodeErrorZ)); return res; }
2092         ~CResult_PingDecodeErrorZ() { CResult_PingDecodeErrorZ_free(self); }
2093         CResult_PingDecodeErrorZ& operator=(CResult_PingDecodeErrorZ&& o) { CResult_PingDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_PingDecodeErrorZ)); return *this; }
2094         LDKCResult_PingDecodeErrorZ* operator &() { return &self; }
2095         LDKCResult_PingDecodeErrorZ* operator ->() { return &self; }
2096         const LDKCResult_PingDecodeErrorZ* operator &() const { return &self; }
2097         const LDKCResult_PingDecodeErrorZ* operator ->() const { return &self; }
2098 };
2099 class CResult_TransactionNoneZ {
2100 private:
2101         LDKCResult_TransactionNoneZ self;
2102 public:
2103         CResult_TransactionNoneZ(const CResult_TransactionNoneZ&) = delete;
2104         CResult_TransactionNoneZ(CResult_TransactionNoneZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_TransactionNoneZ)); }
2105         CResult_TransactionNoneZ(LDKCResult_TransactionNoneZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_TransactionNoneZ)); }
2106         operator LDKCResult_TransactionNoneZ() && { LDKCResult_TransactionNoneZ res = self; memset(&self, 0, sizeof(LDKCResult_TransactionNoneZ)); return res; }
2107         ~CResult_TransactionNoneZ() { CResult_TransactionNoneZ_free(self); }
2108         CResult_TransactionNoneZ& operator=(CResult_TransactionNoneZ&& o) { CResult_TransactionNoneZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_TransactionNoneZ)); return *this; }
2109         LDKCResult_TransactionNoneZ* operator &() { return &self; }
2110         LDKCResult_TransactionNoneZ* operator ->() { return &self; }
2111         const LDKCResult_TransactionNoneZ* operator &() const { return &self; }
2112         const LDKCResult_TransactionNoneZ* operator ->() const { return &self; }
2113 };
2114 class CVec_TransactionOutputsZ {
2115 private:
2116         LDKCVec_TransactionOutputsZ self;
2117 public:
2118         CVec_TransactionOutputsZ(const CVec_TransactionOutputsZ&) = delete;
2119         CVec_TransactionOutputsZ(CVec_TransactionOutputsZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_TransactionOutputsZ)); }
2120         CVec_TransactionOutputsZ(LDKCVec_TransactionOutputsZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_TransactionOutputsZ)); }
2121         operator LDKCVec_TransactionOutputsZ() && { LDKCVec_TransactionOutputsZ res = self; memset(&self, 0, sizeof(LDKCVec_TransactionOutputsZ)); return res; }
2122         ~CVec_TransactionOutputsZ() { CVec_TransactionOutputsZ_free(self); }
2123         CVec_TransactionOutputsZ& operator=(CVec_TransactionOutputsZ&& o) { CVec_TransactionOutputsZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_TransactionOutputsZ)); return *this; }
2124         LDKCVec_TransactionOutputsZ* operator &() { return &self; }
2125         LDKCVec_TransactionOutputsZ* operator ->() { return &self; }
2126         const LDKCVec_TransactionOutputsZ* operator &() const { return &self; }
2127         const LDKCVec_TransactionOutputsZ* operator ->() const { return &self; }
2128 };
2129 class CResult_ErrorMessageDecodeErrorZ {
2130 private:
2131         LDKCResult_ErrorMessageDecodeErrorZ self;
2132 public:
2133         CResult_ErrorMessageDecodeErrorZ(const CResult_ErrorMessageDecodeErrorZ&) = delete;
2134         CResult_ErrorMessageDecodeErrorZ(CResult_ErrorMessageDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ErrorMessageDecodeErrorZ)); }
2135         CResult_ErrorMessageDecodeErrorZ(LDKCResult_ErrorMessageDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ErrorMessageDecodeErrorZ)); }
2136         operator LDKCResult_ErrorMessageDecodeErrorZ() && { LDKCResult_ErrorMessageDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ErrorMessageDecodeErrorZ)); return res; }
2137         ~CResult_ErrorMessageDecodeErrorZ() { CResult_ErrorMessageDecodeErrorZ_free(self); }
2138         CResult_ErrorMessageDecodeErrorZ& operator=(CResult_ErrorMessageDecodeErrorZ&& o) { CResult_ErrorMessageDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ErrorMessageDecodeErrorZ)); return *this; }
2139         LDKCResult_ErrorMessageDecodeErrorZ* operator &() { return &self; }
2140         LDKCResult_ErrorMessageDecodeErrorZ* operator ->() { return &self; }
2141         const LDKCResult_ErrorMessageDecodeErrorZ* operator &() const { return &self; }
2142         const LDKCResult_ErrorMessageDecodeErrorZ* operator ->() const { return &self; }
2143 };
2144 class CResult_OpenChannelDecodeErrorZ {
2145 private:
2146         LDKCResult_OpenChannelDecodeErrorZ self;
2147 public:
2148         CResult_OpenChannelDecodeErrorZ(const CResult_OpenChannelDecodeErrorZ&) = delete;
2149         CResult_OpenChannelDecodeErrorZ(CResult_OpenChannelDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_OpenChannelDecodeErrorZ)); }
2150         CResult_OpenChannelDecodeErrorZ(LDKCResult_OpenChannelDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_OpenChannelDecodeErrorZ)); }
2151         operator LDKCResult_OpenChannelDecodeErrorZ() && { LDKCResult_OpenChannelDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_OpenChannelDecodeErrorZ)); return res; }
2152         ~CResult_OpenChannelDecodeErrorZ() { CResult_OpenChannelDecodeErrorZ_free(self); }
2153         CResult_OpenChannelDecodeErrorZ& operator=(CResult_OpenChannelDecodeErrorZ&& o) { CResult_OpenChannelDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_OpenChannelDecodeErrorZ)); return *this; }
2154         LDKCResult_OpenChannelDecodeErrorZ* operator &() { return &self; }
2155         LDKCResult_OpenChannelDecodeErrorZ* operator ->() { return &self; }
2156         const LDKCResult_OpenChannelDecodeErrorZ* operator &() const { return &self; }
2157         const LDKCResult_OpenChannelDecodeErrorZ* operator ->() const { return &self; }
2158 };
2159 class CVec_CVec_u8ZZ {
2160 private:
2161         LDKCVec_CVec_u8ZZ self;
2162 public:
2163         CVec_CVec_u8ZZ(const CVec_CVec_u8ZZ&) = delete;
2164         CVec_CVec_u8ZZ(CVec_CVec_u8ZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_CVec_u8ZZ)); }
2165         CVec_CVec_u8ZZ(LDKCVec_CVec_u8ZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_CVec_u8ZZ)); }
2166         operator LDKCVec_CVec_u8ZZ() && { LDKCVec_CVec_u8ZZ res = self; memset(&self, 0, sizeof(LDKCVec_CVec_u8ZZ)); return res; }
2167         ~CVec_CVec_u8ZZ() { CVec_CVec_u8ZZ_free(self); }
2168         CVec_CVec_u8ZZ& operator=(CVec_CVec_u8ZZ&& o) { CVec_CVec_u8ZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_CVec_u8ZZ)); return *this; }
2169         LDKCVec_CVec_u8ZZ* operator &() { return &self; }
2170         LDKCVec_CVec_u8ZZ* operator ->() { return &self; }
2171         const LDKCVec_CVec_u8ZZ* operator &() const { return &self; }
2172         const LDKCVec_CVec_u8ZZ* operator ->() const { return &self; }
2173 };
2174 class CResult_SecretKeyErrorZ {
2175 private:
2176         LDKCResult_SecretKeyErrorZ self;
2177 public:
2178         CResult_SecretKeyErrorZ(const CResult_SecretKeyErrorZ&) = delete;
2179         CResult_SecretKeyErrorZ(CResult_SecretKeyErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_SecretKeyErrorZ)); }
2180         CResult_SecretKeyErrorZ(LDKCResult_SecretKeyErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_SecretKeyErrorZ)); }
2181         operator LDKCResult_SecretKeyErrorZ() && { LDKCResult_SecretKeyErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_SecretKeyErrorZ)); return res; }
2182         ~CResult_SecretKeyErrorZ() { CResult_SecretKeyErrorZ_free(self); }
2183         CResult_SecretKeyErrorZ& operator=(CResult_SecretKeyErrorZ&& o) { CResult_SecretKeyErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_SecretKeyErrorZ)); return *this; }
2184         LDKCResult_SecretKeyErrorZ* operator &() { return &self; }
2185         LDKCResult_SecretKeyErrorZ* operator ->() { return &self; }
2186         const LDKCResult_SecretKeyErrorZ* operator &() const { return &self; }
2187         const LDKCResult_SecretKeyErrorZ* operator ->() const { return &self; }
2188 };
2189 class CResult_QueryChannelRangeDecodeErrorZ {
2190 private:
2191         LDKCResult_QueryChannelRangeDecodeErrorZ self;
2192 public:
2193         CResult_QueryChannelRangeDecodeErrorZ(const CResult_QueryChannelRangeDecodeErrorZ&) = delete;
2194         CResult_QueryChannelRangeDecodeErrorZ(CResult_QueryChannelRangeDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_QueryChannelRangeDecodeErrorZ)); }
2195         CResult_QueryChannelRangeDecodeErrorZ(LDKCResult_QueryChannelRangeDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_QueryChannelRangeDecodeErrorZ)); }
2196         operator LDKCResult_QueryChannelRangeDecodeErrorZ() && { LDKCResult_QueryChannelRangeDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_QueryChannelRangeDecodeErrorZ)); return res; }
2197         ~CResult_QueryChannelRangeDecodeErrorZ() { CResult_QueryChannelRangeDecodeErrorZ_free(self); }
2198         CResult_QueryChannelRangeDecodeErrorZ& operator=(CResult_QueryChannelRangeDecodeErrorZ&& o) { CResult_QueryChannelRangeDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_QueryChannelRangeDecodeErrorZ)); return *this; }
2199         LDKCResult_QueryChannelRangeDecodeErrorZ* operator &() { return &self; }
2200         LDKCResult_QueryChannelRangeDecodeErrorZ* operator ->() { return &self; }
2201         const LDKCResult_QueryChannelRangeDecodeErrorZ* operator &() const { return &self; }
2202         const LDKCResult_QueryChannelRangeDecodeErrorZ* operator ->() const { return &self; }
2203 };
2204 class CResult_TxCreationKeysDecodeErrorZ {
2205 private:
2206         LDKCResult_TxCreationKeysDecodeErrorZ self;
2207 public:
2208         CResult_TxCreationKeysDecodeErrorZ(const CResult_TxCreationKeysDecodeErrorZ&) = delete;
2209         CResult_TxCreationKeysDecodeErrorZ(CResult_TxCreationKeysDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_TxCreationKeysDecodeErrorZ)); }
2210         CResult_TxCreationKeysDecodeErrorZ(LDKCResult_TxCreationKeysDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_TxCreationKeysDecodeErrorZ)); }
2211         operator LDKCResult_TxCreationKeysDecodeErrorZ() && { LDKCResult_TxCreationKeysDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_TxCreationKeysDecodeErrorZ)); return res; }
2212         ~CResult_TxCreationKeysDecodeErrorZ() { CResult_TxCreationKeysDecodeErrorZ_free(self); }
2213         CResult_TxCreationKeysDecodeErrorZ& operator=(CResult_TxCreationKeysDecodeErrorZ&& o) { CResult_TxCreationKeysDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_TxCreationKeysDecodeErrorZ)); return *this; }
2214         LDKCResult_TxCreationKeysDecodeErrorZ* operator &() { return &self; }
2215         LDKCResult_TxCreationKeysDecodeErrorZ* operator ->() { return &self; }
2216         const LDKCResult_TxCreationKeysDecodeErrorZ* operator &() const { return &self; }
2217         const LDKCResult_TxCreationKeysDecodeErrorZ* operator ->() const { return &self; }
2218 };
2219 class CVec_TransactionZ {
2220 private:
2221         LDKCVec_TransactionZ self;
2222 public:
2223         CVec_TransactionZ(const CVec_TransactionZ&) = delete;
2224         CVec_TransactionZ(CVec_TransactionZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_TransactionZ)); }
2225         CVec_TransactionZ(LDKCVec_TransactionZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_TransactionZ)); }
2226         operator LDKCVec_TransactionZ() && { LDKCVec_TransactionZ res = self; memset(&self, 0, sizeof(LDKCVec_TransactionZ)); return res; }
2227         ~CVec_TransactionZ() { CVec_TransactionZ_free(self); }
2228         CVec_TransactionZ& operator=(CVec_TransactionZ&& o) { CVec_TransactionZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_TransactionZ)); return *this; }
2229         LDKCVec_TransactionZ* operator &() { return &self; }
2230         LDKCVec_TransactionZ* operator ->() { return &self; }
2231         const LDKCVec_TransactionZ* operator &() const { return &self; }
2232         const LDKCVec_TransactionZ* operator ->() const { return &self; }
2233 };
2234 class C2Tuple_usizeTransactionZ {
2235 private:
2236         LDKC2Tuple_usizeTransactionZ self;
2237 public:
2238         C2Tuple_usizeTransactionZ(const C2Tuple_usizeTransactionZ&) = delete;
2239         C2Tuple_usizeTransactionZ(C2Tuple_usizeTransactionZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_usizeTransactionZ)); }
2240         C2Tuple_usizeTransactionZ(LDKC2Tuple_usizeTransactionZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_usizeTransactionZ)); }
2241         operator LDKC2Tuple_usizeTransactionZ() && { LDKC2Tuple_usizeTransactionZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_usizeTransactionZ)); return res; }
2242         ~C2Tuple_usizeTransactionZ() { C2Tuple_usizeTransactionZ_free(self); }
2243         C2Tuple_usizeTransactionZ& operator=(C2Tuple_usizeTransactionZ&& o) { C2Tuple_usizeTransactionZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_usizeTransactionZ)); return *this; }
2244         LDKC2Tuple_usizeTransactionZ* operator &() { return &self; }
2245         LDKC2Tuple_usizeTransactionZ* operator ->() { return &self; }
2246         const LDKC2Tuple_usizeTransactionZ* operator &() const { return &self; }
2247         const LDKC2Tuple_usizeTransactionZ* operator ->() const { return &self; }
2248 };
2249 class CResult_ChannelFeaturesDecodeErrorZ {
2250 private:
2251         LDKCResult_ChannelFeaturesDecodeErrorZ self;
2252 public:
2253         CResult_ChannelFeaturesDecodeErrorZ(const CResult_ChannelFeaturesDecodeErrorZ&) = delete;
2254         CResult_ChannelFeaturesDecodeErrorZ(CResult_ChannelFeaturesDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelFeaturesDecodeErrorZ)); }
2255         CResult_ChannelFeaturesDecodeErrorZ(LDKCResult_ChannelFeaturesDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelFeaturesDecodeErrorZ)); }
2256         operator LDKCResult_ChannelFeaturesDecodeErrorZ() && { LDKCResult_ChannelFeaturesDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelFeaturesDecodeErrorZ)); return res; }
2257         ~CResult_ChannelFeaturesDecodeErrorZ() { CResult_ChannelFeaturesDecodeErrorZ_free(self); }
2258         CResult_ChannelFeaturesDecodeErrorZ& operator=(CResult_ChannelFeaturesDecodeErrorZ&& o) { CResult_ChannelFeaturesDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelFeaturesDecodeErrorZ)); return *this; }
2259         LDKCResult_ChannelFeaturesDecodeErrorZ* operator &() { return &self; }
2260         LDKCResult_ChannelFeaturesDecodeErrorZ* operator ->() { return &self; }
2261         const LDKCResult_ChannelFeaturesDecodeErrorZ* operator &() const { return &self; }
2262         const LDKCResult_ChannelFeaturesDecodeErrorZ* operator ->() const { return &self; }
2263 };
2264 class CResult_NodeAnnouncementDecodeErrorZ {
2265 private:
2266         LDKCResult_NodeAnnouncementDecodeErrorZ self;
2267 public:
2268         CResult_NodeAnnouncementDecodeErrorZ(const CResult_NodeAnnouncementDecodeErrorZ&) = delete;
2269         CResult_NodeAnnouncementDecodeErrorZ(CResult_NodeAnnouncementDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NodeAnnouncementDecodeErrorZ)); }
2270         CResult_NodeAnnouncementDecodeErrorZ(LDKCResult_NodeAnnouncementDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NodeAnnouncementDecodeErrorZ)); }
2271         operator LDKCResult_NodeAnnouncementDecodeErrorZ() && { LDKCResult_NodeAnnouncementDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NodeAnnouncementDecodeErrorZ)); return res; }
2272         ~CResult_NodeAnnouncementDecodeErrorZ() { CResult_NodeAnnouncementDecodeErrorZ_free(self); }
2273         CResult_NodeAnnouncementDecodeErrorZ& operator=(CResult_NodeAnnouncementDecodeErrorZ&& o) { CResult_NodeAnnouncementDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NodeAnnouncementDecodeErrorZ)); return *this; }
2274         LDKCResult_NodeAnnouncementDecodeErrorZ* operator &() { return &self; }
2275         LDKCResult_NodeAnnouncementDecodeErrorZ* operator ->() { return &self; }
2276         const LDKCResult_NodeAnnouncementDecodeErrorZ* operator &() const { return &self; }
2277         const LDKCResult_NodeAnnouncementDecodeErrorZ* operator ->() const { return &self; }
2278 };
2279 class CResult_UpdateFeeDecodeErrorZ {
2280 private:
2281         LDKCResult_UpdateFeeDecodeErrorZ self;
2282 public:
2283         CResult_UpdateFeeDecodeErrorZ(const CResult_UpdateFeeDecodeErrorZ&) = delete;
2284         CResult_UpdateFeeDecodeErrorZ(CResult_UpdateFeeDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UpdateFeeDecodeErrorZ)); }
2285         CResult_UpdateFeeDecodeErrorZ(LDKCResult_UpdateFeeDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UpdateFeeDecodeErrorZ)); }
2286         operator LDKCResult_UpdateFeeDecodeErrorZ() && { LDKCResult_UpdateFeeDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UpdateFeeDecodeErrorZ)); return res; }
2287         ~CResult_UpdateFeeDecodeErrorZ() { CResult_UpdateFeeDecodeErrorZ_free(self); }
2288         CResult_UpdateFeeDecodeErrorZ& operator=(CResult_UpdateFeeDecodeErrorZ&& o) { CResult_UpdateFeeDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UpdateFeeDecodeErrorZ)); return *this; }
2289         LDKCResult_UpdateFeeDecodeErrorZ* operator &() { return &self; }
2290         LDKCResult_UpdateFeeDecodeErrorZ* operator ->() { return &self; }
2291         const LDKCResult_UpdateFeeDecodeErrorZ* operator &() const { return &self; }
2292         const LDKCResult_UpdateFeeDecodeErrorZ* operator ->() const { return &self; }
2293 };
2294 class CVec_ChannelMonitorZ {
2295 private:
2296         LDKCVec_ChannelMonitorZ self;
2297 public:
2298         CVec_ChannelMonitorZ(const CVec_ChannelMonitorZ&) = delete;
2299         CVec_ChannelMonitorZ(CVec_ChannelMonitorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_ChannelMonitorZ)); }
2300         CVec_ChannelMonitorZ(LDKCVec_ChannelMonitorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_ChannelMonitorZ)); }
2301         operator LDKCVec_ChannelMonitorZ() && { LDKCVec_ChannelMonitorZ res = self; memset(&self, 0, sizeof(LDKCVec_ChannelMonitorZ)); return res; }
2302         ~CVec_ChannelMonitorZ() { CVec_ChannelMonitorZ_free(self); }
2303         CVec_ChannelMonitorZ& operator=(CVec_ChannelMonitorZ&& o) { CVec_ChannelMonitorZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_ChannelMonitorZ)); return *this; }
2304         LDKCVec_ChannelMonitorZ* operator &() { return &self; }
2305         LDKCVec_ChannelMonitorZ* operator ->() { return &self; }
2306         const LDKCVec_ChannelMonitorZ* operator &() const { return &self; }
2307         const LDKCVec_ChannelMonitorZ* operator ->() const { return &self; }
2308 };
2309 class CResult_HTLCOutputInCommitmentDecodeErrorZ {
2310 private:
2311         LDKCResult_HTLCOutputInCommitmentDecodeErrorZ self;
2312 public:
2313         CResult_HTLCOutputInCommitmentDecodeErrorZ(const CResult_HTLCOutputInCommitmentDecodeErrorZ&) = delete;
2314         CResult_HTLCOutputInCommitmentDecodeErrorZ(CResult_HTLCOutputInCommitmentDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_HTLCOutputInCommitmentDecodeErrorZ)); }
2315         CResult_HTLCOutputInCommitmentDecodeErrorZ(LDKCResult_HTLCOutputInCommitmentDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_HTLCOutputInCommitmentDecodeErrorZ)); }
2316         operator LDKCResult_HTLCOutputInCommitmentDecodeErrorZ() && { LDKCResult_HTLCOutputInCommitmentDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_HTLCOutputInCommitmentDecodeErrorZ)); return res; }
2317         ~CResult_HTLCOutputInCommitmentDecodeErrorZ() { CResult_HTLCOutputInCommitmentDecodeErrorZ_free(self); }
2318         CResult_HTLCOutputInCommitmentDecodeErrorZ& operator=(CResult_HTLCOutputInCommitmentDecodeErrorZ&& o) { CResult_HTLCOutputInCommitmentDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_HTLCOutputInCommitmentDecodeErrorZ)); return *this; }
2319         LDKCResult_HTLCOutputInCommitmentDecodeErrorZ* operator &() { return &self; }
2320         LDKCResult_HTLCOutputInCommitmentDecodeErrorZ* operator ->() { return &self; }
2321         const LDKCResult_HTLCOutputInCommitmentDecodeErrorZ* operator &() const { return &self; }
2322         const LDKCResult_HTLCOutputInCommitmentDecodeErrorZ* operator ->() const { return &self; }
2323 };
2324 class CResult_boolLightningErrorZ {
2325 private:
2326         LDKCResult_boolLightningErrorZ self;
2327 public:
2328         CResult_boolLightningErrorZ(const CResult_boolLightningErrorZ&) = delete;
2329         CResult_boolLightningErrorZ(CResult_boolLightningErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_boolLightningErrorZ)); }
2330         CResult_boolLightningErrorZ(LDKCResult_boolLightningErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_boolLightningErrorZ)); }
2331         operator LDKCResult_boolLightningErrorZ() && { LDKCResult_boolLightningErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_boolLightningErrorZ)); return res; }
2332         ~CResult_boolLightningErrorZ() { CResult_boolLightningErrorZ_free(self); }
2333         CResult_boolLightningErrorZ& operator=(CResult_boolLightningErrorZ&& o) { CResult_boolLightningErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_boolLightningErrorZ)); return *this; }
2334         LDKCResult_boolLightningErrorZ* operator &() { return &self; }
2335         LDKCResult_boolLightningErrorZ* operator ->() { return &self; }
2336         const LDKCResult_boolLightningErrorZ* operator &() const { return &self; }
2337         const LDKCResult_boolLightningErrorZ* operator ->() const { return &self; }
2338 };
2339 class CResult_TxCreationKeysErrorZ {
2340 private:
2341         LDKCResult_TxCreationKeysErrorZ self;
2342 public:
2343         CResult_TxCreationKeysErrorZ(const CResult_TxCreationKeysErrorZ&) = delete;
2344         CResult_TxCreationKeysErrorZ(CResult_TxCreationKeysErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_TxCreationKeysErrorZ)); }
2345         CResult_TxCreationKeysErrorZ(LDKCResult_TxCreationKeysErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_TxCreationKeysErrorZ)); }
2346         operator LDKCResult_TxCreationKeysErrorZ() && { LDKCResult_TxCreationKeysErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_TxCreationKeysErrorZ)); return res; }
2347         ~CResult_TxCreationKeysErrorZ() { CResult_TxCreationKeysErrorZ_free(self); }
2348         CResult_TxCreationKeysErrorZ& operator=(CResult_TxCreationKeysErrorZ&& o) { CResult_TxCreationKeysErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_TxCreationKeysErrorZ)); return *this; }
2349         LDKCResult_TxCreationKeysErrorZ* operator &() { return &self; }
2350         LDKCResult_TxCreationKeysErrorZ* operator ->() { return &self; }
2351         const LDKCResult_TxCreationKeysErrorZ* operator &() const { return &self; }
2352         const LDKCResult_TxCreationKeysErrorZ* operator ->() const { return &self; }
2353 };
2354 class C2Tuple_BlockHashChannelMonitorZ {
2355 private:
2356         LDKC2Tuple_BlockHashChannelMonitorZ self;
2357 public:
2358         C2Tuple_BlockHashChannelMonitorZ(const C2Tuple_BlockHashChannelMonitorZ&) = delete;
2359         C2Tuple_BlockHashChannelMonitorZ(C2Tuple_BlockHashChannelMonitorZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_BlockHashChannelMonitorZ)); }
2360         C2Tuple_BlockHashChannelMonitorZ(LDKC2Tuple_BlockHashChannelMonitorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_BlockHashChannelMonitorZ)); }
2361         operator LDKC2Tuple_BlockHashChannelMonitorZ() && { LDKC2Tuple_BlockHashChannelMonitorZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_BlockHashChannelMonitorZ)); return res; }
2362         ~C2Tuple_BlockHashChannelMonitorZ() { C2Tuple_BlockHashChannelMonitorZ_free(self); }
2363         C2Tuple_BlockHashChannelMonitorZ& operator=(C2Tuple_BlockHashChannelMonitorZ&& o) { C2Tuple_BlockHashChannelMonitorZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_BlockHashChannelMonitorZ)); return *this; }
2364         LDKC2Tuple_BlockHashChannelMonitorZ* operator &() { return &self; }
2365         LDKC2Tuple_BlockHashChannelMonitorZ* operator ->() { return &self; }
2366         const LDKC2Tuple_BlockHashChannelMonitorZ* operator &() const { return &self; }
2367         const LDKC2Tuple_BlockHashChannelMonitorZ* operator ->() const { return &self; }
2368 };
2369 class CResult_FundingSignedDecodeErrorZ {
2370 private:
2371         LDKCResult_FundingSignedDecodeErrorZ self;
2372 public:
2373         CResult_FundingSignedDecodeErrorZ(const CResult_FundingSignedDecodeErrorZ&) = delete;
2374         CResult_FundingSignedDecodeErrorZ(CResult_FundingSignedDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_FundingSignedDecodeErrorZ)); }
2375         CResult_FundingSignedDecodeErrorZ(LDKCResult_FundingSignedDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_FundingSignedDecodeErrorZ)); }
2376         operator LDKCResult_FundingSignedDecodeErrorZ() && { LDKCResult_FundingSignedDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_FundingSignedDecodeErrorZ)); return res; }
2377         ~CResult_FundingSignedDecodeErrorZ() { CResult_FundingSignedDecodeErrorZ_free(self); }
2378         CResult_FundingSignedDecodeErrorZ& operator=(CResult_FundingSignedDecodeErrorZ&& o) { CResult_FundingSignedDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_FundingSignedDecodeErrorZ)); return *this; }
2379         LDKCResult_FundingSignedDecodeErrorZ* operator &() { return &self; }
2380         LDKCResult_FundingSignedDecodeErrorZ* operator ->() { return &self; }
2381         const LDKCResult_FundingSignedDecodeErrorZ* operator &() const { return &self; }
2382         const LDKCResult_FundingSignedDecodeErrorZ* operator ->() const { return &self; }
2383 };
2384 class CResult_NodeAnnouncementInfoDecodeErrorZ {
2385 private:
2386         LDKCResult_NodeAnnouncementInfoDecodeErrorZ self;
2387 public:
2388         CResult_NodeAnnouncementInfoDecodeErrorZ(const CResult_NodeAnnouncementInfoDecodeErrorZ&) = delete;
2389         CResult_NodeAnnouncementInfoDecodeErrorZ(CResult_NodeAnnouncementInfoDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NodeAnnouncementInfoDecodeErrorZ)); }
2390         CResult_NodeAnnouncementInfoDecodeErrorZ(LDKCResult_NodeAnnouncementInfoDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NodeAnnouncementInfoDecodeErrorZ)); }
2391         operator LDKCResult_NodeAnnouncementInfoDecodeErrorZ() && { LDKCResult_NodeAnnouncementInfoDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NodeAnnouncementInfoDecodeErrorZ)); return res; }
2392         ~CResult_NodeAnnouncementInfoDecodeErrorZ() { CResult_NodeAnnouncementInfoDecodeErrorZ_free(self); }
2393         CResult_NodeAnnouncementInfoDecodeErrorZ& operator=(CResult_NodeAnnouncementInfoDecodeErrorZ&& o) { CResult_NodeAnnouncementInfoDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NodeAnnouncementInfoDecodeErrorZ)); return *this; }
2394         LDKCResult_NodeAnnouncementInfoDecodeErrorZ* operator &() { return &self; }
2395         LDKCResult_NodeAnnouncementInfoDecodeErrorZ* operator ->() { return &self; }
2396         const LDKCResult_NodeAnnouncementInfoDecodeErrorZ* operator &() const { return &self; }
2397         const LDKCResult_NodeAnnouncementInfoDecodeErrorZ* operator ->() const { return &self; }
2398 };
2399 class CResult_NetAddressu8Z {
2400 private:
2401         LDKCResult_NetAddressu8Z self;
2402 public:
2403         CResult_NetAddressu8Z(const CResult_NetAddressu8Z&) = delete;
2404         CResult_NetAddressu8Z(CResult_NetAddressu8Z&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NetAddressu8Z)); }
2405         CResult_NetAddressu8Z(LDKCResult_NetAddressu8Z&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NetAddressu8Z)); }
2406         operator LDKCResult_NetAddressu8Z() && { LDKCResult_NetAddressu8Z res = self; memset(&self, 0, sizeof(LDKCResult_NetAddressu8Z)); return res; }
2407         ~CResult_NetAddressu8Z() { CResult_NetAddressu8Z_free(self); }
2408         CResult_NetAddressu8Z& operator=(CResult_NetAddressu8Z&& o) { CResult_NetAddressu8Z_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NetAddressu8Z)); return *this; }
2409         LDKCResult_NetAddressu8Z* operator &() { return &self; }
2410         LDKCResult_NetAddressu8Z* operator ->() { return &self; }
2411         const LDKCResult_NetAddressu8Z* operator &() const { return &self; }
2412         const LDKCResult_NetAddressu8Z* operator ->() const { return &self; }
2413 };
2414 class CVec_UpdateFailMalformedHTLCZ {
2415 private:
2416         LDKCVec_UpdateFailMalformedHTLCZ self;
2417 public:
2418         CVec_UpdateFailMalformedHTLCZ(const CVec_UpdateFailMalformedHTLCZ&) = delete;
2419         CVec_UpdateFailMalformedHTLCZ(CVec_UpdateFailMalformedHTLCZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_UpdateFailMalformedHTLCZ)); }
2420         CVec_UpdateFailMalformedHTLCZ(LDKCVec_UpdateFailMalformedHTLCZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_UpdateFailMalformedHTLCZ)); }
2421         operator LDKCVec_UpdateFailMalformedHTLCZ() && { LDKCVec_UpdateFailMalformedHTLCZ res = self; memset(&self, 0, sizeof(LDKCVec_UpdateFailMalformedHTLCZ)); return res; }
2422         ~CVec_UpdateFailMalformedHTLCZ() { CVec_UpdateFailMalformedHTLCZ_free(self); }
2423         CVec_UpdateFailMalformedHTLCZ& operator=(CVec_UpdateFailMalformedHTLCZ&& o) { CVec_UpdateFailMalformedHTLCZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_UpdateFailMalformedHTLCZ)); return *this; }
2424         LDKCVec_UpdateFailMalformedHTLCZ* operator &() { return &self; }
2425         LDKCVec_UpdateFailMalformedHTLCZ* operator ->() { return &self; }
2426         const LDKCVec_UpdateFailMalformedHTLCZ* operator &() const { return &self; }
2427         const LDKCVec_UpdateFailMalformedHTLCZ* operator ->() const { return &self; }
2428 };
2429 class CResult_NetworkGraphDecodeErrorZ {
2430 private:
2431         LDKCResult_NetworkGraphDecodeErrorZ self;
2432 public:
2433         CResult_NetworkGraphDecodeErrorZ(const CResult_NetworkGraphDecodeErrorZ&) = delete;
2434         CResult_NetworkGraphDecodeErrorZ(CResult_NetworkGraphDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NetworkGraphDecodeErrorZ)); }
2435         CResult_NetworkGraphDecodeErrorZ(LDKCResult_NetworkGraphDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NetworkGraphDecodeErrorZ)); }
2436         operator LDKCResult_NetworkGraphDecodeErrorZ() && { LDKCResult_NetworkGraphDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NetworkGraphDecodeErrorZ)); return res; }
2437         ~CResult_NetworkGraphDecodeErrorZ() { CResult_NetworkGraphDecodeErrorZ_free(self); }
2438         CResult_NetworkGraphDecodeErrorZ& operator=(CResult_NetworkGraphDecodeErrorZ&& o) { CResult_NetworkGraphDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NetworkGraphDecodeErrorZ)); return *this; }
2439         LDKCResult_NetworkGraphDecodeErrorZ* operator &() { return &self; }
2440         LDKCResult_NetworkGraphDecodeErrorZ* operator ->() { return &self; }
2441         const LDKCResult_NetworkGraphDecodeErrorZ* operator &() const { return &self; }
2442         const LDKCResult_NetworkGraphDecodeErrorZ* operator ->() const { return &self; }
2443 };
2444 class CVec_RouteHopZ {
2445 private:
2446         LDKCVec_RouteHopZ self;
2447 public:
2448         CVec_RouteHopZ(const CVec_RouteHopZ&) = delete;
2449         CVec_RouteHopZ(CVec_RouteHopZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_RouteHopZ)); }
2450         CVec_RouteHopZ(LDKCVec_RouteHopZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_RouteHopZ)); }
2451         operator LDKCVec_RouteHopZ() && { LDKCVec_RouteHopZ res = self; memset(&self, 0, sizeof(LDKCVec_RouteHopZ)); return res; }
2452         ~CVec_RouteHopZ() { CVec_RouteHopZ_free(self); }
2453         CVec_RouteHopZ& operator=(CVec_RouteHopZ&& o) { CVec_RouteHopZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_RouteHopZ)); return *this; }
2454         LDKCVec_RouteHopZ* operator &() { return &self; }
2455         LDKCVec_RouteHopZ* operator ->() { return &self; }
2456         const LDKCVec_RouteHopZ* operator &() const { return &self; }
2457         const LDKCVec_RouteHopZ* operator ->() const { return &self; }
2458 };
2459 class CResult_NodeInfoDecodeErrorZ {
2460 private:
2461         LDKCResult_NodeInfoDecodeErrorZ self;
2462 public:
2463         CResult_NodeInfoDecodeErrorZ(const CResult_NodeInfoDecodeErrorZ&) = delete;
2464         CResult_NodeInfoDecodeErrorZ(CResult_NodeInfoDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NodeInfoDecodeErrorZ)); }
2465         CResult_NodeInfoDecodeErrorZ(LDKCResult_NodeInfoDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NodeInfoDecodeErrorZ)); }
2466         operator LDKCResult_NodeInfoDecodeErrorZ() && { LDKCResult_NodeInfoDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NodeInfoDecodeErrorZ)); return res; }
2467         ~CResult_NodeInfoDecodeErrorZ() { CResult_NodeInfoDecodeErrorZ_free(self); }
2468         CResult_NodeInfoDecodeErrorZ& operator=(CResult_NodeInfoDecodeErrorZ&& o) { CResult_NodeInfoDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NodeInfoDecodeErrorZ)); return *this; }
2469         LDKCResult_NodeInfoDecodeErrorZ* operator &() { return &self; }
2470         LDKCResult_NodeInfoDecodeErrorZ* operator ->() { return &self; }
2471         const LDKCResult_NodeInfoDecodeErrorZ* operator &() const { return &self; }
2472         const LDKCResult_NodeInfoDecodeErrorZ* operator ->() const { return &self; }
2473 };
2474 class CVec_C2Tuple_BlockHashChannelMonitorZZ {
2475 private:
2476         LDKCVec_C2Tuple_BlockHashChannelMonitorZZ self;
2477 public:
2478         CVec_C2Tuple_BlockHashChannelMonitorZZ(const CVec_C2Tuple_BlockHashChannelMonitorZZ&) = delete;
2479         CVec_C2Tuple_BlockHashChannelMonitorZZ(CVec_C2Tuple_BlockHashChannelMonitorZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_C2Tuple_BlockHashChannelMonitorZZ)); }
2480         CVec_C2Tuple_BlockHashChannelMonitorZZ(LDKCVec_C2Tuple_BlockHashChannelMonitorZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_C2Tuple_BlockHashChannelMonitorZZ)); }
2481         operator LDKCVec_C2Tuple_BlockHashChannelMonitorZZ() && { LDKCVec_C2Tuple_BlockHashChannelMonitorZZ res = self; memset(&self, 0, sizeof(LDKCVec_C2Tuple_BlockHashChannelMonitorZZ)); return res; }
2482         ~CVec_C2Tuple_BlockHashChannelMonitorZZ() { CVec_C2Tuple_BlockHashChannelMonitorZZ_free(self); }
2483         CVec_C2Tuple_BlockHashChannelMonitorZZ& operator=(CVec_C2Tuple_BlockHashChannelMonitorZZ&& o) { CVec_C2Tuple_BlockHashChannelMonitorZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_C2Tuple_BlockHashChannelMonitorZZ)); return *this; }
2484         LDKCVec_C2Tuple_BlockHashChannelMonitorZZ* operator &() { return &self; }
2485         LDKCVec_C2Tuple_BlockHashChannelMonitorZZ* operator ->() { return &self; }
2486         const LDKCVec_C2Tuple_BlockHashChannelMonitorZZ* operator &() const { return &self; }
2487         const LDKCVec_C2Tuple_BlockHashChannelMonitorZZ* operator ->() const { return &self; }
2488 };
2489 class CResult_RouteLightningErrorZ {
2490 private:
2491         LDKCResult_RouteLightningErrorZ self;
2492 public:
2493         CResult_RouteLightningErrorZ(const CResult_RouteLightningErrorZ&) = delete;
2494         CResult_RouteLightningErrorZ(CResult_RouteLightningErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_RouteLightningErrorZ)); }
2495         CResult_RouteLightningErrorZ(LDKCResult_RouteLightningErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_RouteLightningErrorZ)); }
2496         operator LDKCResult_RouteLightningErrorZ() && { LDKCResult_RouteLightningErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_RouteLightningErrorZ)); return res; }
2497         ~CResult_RouteLightningErrorZ() { CResult_RouteLightningErrorZ_free(self); }
2498         CResult_RouteLightningErrorZ& operator=(CResult_RouteLightningErrorZ&& o) { CResult_RouteLightningErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_RouteLightningErrorZ)); return *this; }
2499         LDKCResult_RouteLightningErrorZ* operator &() { return &self; }
2500         LDKCResult_RouteLightningErrorZ* operator ->() { return &self; }
2501         const LDKCResult_RouteLightningErrorZ* operator &() const { return &self; }
2502         const LDKCResult_RouteLightningErrorZ* operator ->() const { return &self; }
2503 };
2504 class CResult_ChannelPublicKeysDecodeErrorZ {
2505 private:
2506         LDKCResult_ChannelPublicKeysDecodeErrorZ self;
2507 public:
2508         CResult_ChannelPublicKeysDecodeErrorZ(const CResult_ChannelPublicKeysDecodeErrorZ&) = delete;
2509         CResult_ChannelPublicKeysDecodeErrorZ(CResult_ChannelPublicKeysDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelPublicKeysDecodeErrorZ)); }
2510         CResult_ChannelPublicKeysDecodeErrorZ(LDKCResult_ChannelPublicKeysDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelPublicKeysDecodeErrorZ)); }
2511         operator LDKCResult_ChannelPublicKeysDecodeErrorZ() && { LDKCResult_ChannelPublicKeysDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelPublicKeysDecodeErrorZ)); return res; }
2512         ~CResult_ChannelPublicKeysDecodeErrorZ() { CResult_ChannelPublicKeysDecodeErrorZ_free(self); }
2513         CResult_ChannelPublicKeysDecodeErrorZ& operator=(CResult_ChannelPublicKeysDecodeErrorZ&& o) { CResult_ChannelPublicKeysDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelPublicKeysDecodeErrorZ)); return *this; }
2514         LDKCResult_ChannelPublicKeysDecodeErrorZ* operator &() { return &self; }
2515         LDKCResult_ChannelPublicKeysDecodeErrorZ* operator ->() { return &self; }
2516         const LDKCResult_ChannelPublicKeysDecodeErrorZ* operator &() const { return &self; }
2517         const LDKCResult_ChannelPublicKeysDecodeErrorZ* operator ->() const { return &self; }
2518 };
2519 class CVec_u8Z {
2520 private:
2521         LDKCVec_u8Z self;
2522 public:
2523         CVec_u8Z(const CVec_u8Z&) = delete;
2524         CVec_u8Z(CVec_u8Z&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_u8Z)); }
2525         CVec_u8Z(LDKCVec_u8Z&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_u8Z)); }
2526         operator LDKCVec_u8Z() && { LDKCVec_u8Z res = self; memset(&self, 0, sizeof(LDKCVec_u8Z)); return res; }
2527         ~CVec_u8Z() { CVec_u8Z_free(self); }
2528         CVec_u8Z& operator=(CVec_u8Z&& o) { CVec_u8Z_free(self); self = o.self; memset(&o, 0, sizeof(CVec_u8Z)); return *this; }
2529         LDKCVec_u8Z* operator &() { return &self; }
2530         LDKCVec_u8Z* operator ->() { return &self; }
2531         const LDKCVec_u8Z* operator &() const { return &self; }
2532         const LDKCVec_u8Z* operator ->() const { return &self; }
2533 };
2534 class CResult_NonePaymentSendFailureZ {
2535 private:
2536         LDKCResult_NonePaymentSendFailureZ self;
2537 public:
2538         CResult_NonePaymentSendFailureZ(const CResult_NonePaymentSendFailureZ&) = delete;
2539         CResult_NonePaymentSendFailureZ(CResult_NonePaymentSendFailureZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NonePaymentSendFailureZ)); }
2540         CResult_NonePaymentSendFailureZ(LDKCResult_NonePaymentSendFailureZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NonePaymentSendFailureZ)); }
2541         operator LDKCResult_NonePaymentSendFailureZ() && { LDKCResult_NonePaymentSendFailureZ res = self; memset(&self, 0, sizeof(LDKCResult_NonePaymentSendFailureZ)); return res; }
2542         ~CResult_NonePaymentSendFailureZ() { CResult_NonePaymentSendFailureZ_free(self); }
2543         CResult_NonePaymentSendFailureZ& operator=(CResult_NonePaymentSendFailureZ&& o) { CResult_NonePaymentSendFailureZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NonePaymentSendFailureZ)); return *this; }
2544         LDKCResult_NonePaymentSendFailureZ* operator &() { return &self; }
2545         LDKCResult_NonePaymentSendFailureZ* operator ->() { return &self; }
2546         const LDKCResult_NonePaymentSendFailureZ* operator &() const { return &self; }
2547         const LDKCResult_NonePaymentSendFailureZ* operator ->() const { return &self; }
2548 };
2549 class CResult_ClosingSignedDecodeErrorZ {
2550 private:
2551         LDKCResult_ClosingSignedDecodeErrorZ self;
2552 public:
2553         CResult_ClosingSignedDecodeErrorZ(const CResult_ClosingSignedDecodeErrorZ&) = delete;
2554         CResult_ClosingSignedDecodeErrorZ(CResult_ClosingSignedDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ClosingSignedDecodeErrorZ)); }
2555         CResult_ClosingSignedDecodeErrorZ(LDKCResult_ClosingSignedDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ClosingSignedDecodeErrorZ)); }
2556         operator LDKCResult_ClosingSignedDecodeErrorZ() && { LDKCResult_ClosingSignedDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ClosingSignedDecodeErrorZ)); return res; }
2557         ~CResult_ClosingSignedDecodeErrorZ() { CResult_ClosingSignedDecodeErrorZ_free(self); }
2558         CResult_ClosingSignedDecodeErrorZ& operator=(CResult_ClosingSignedDecodeErrorZ&& o) { CResult_ClosingSignedDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ClosingSignedDecodeErrorZ)); return *this; }
2559         LDKCResult_ClosingSignedDecodeErrorZ* operator &() { return &self; }
2560         LDKCResult_ClosingSignedDecodeErrorZ* operator ->() { return &self; }
2561         const LDKCResult_ClosingSignedDecodeErrorZ* operator &() const { return &self; }
2562         const LDKCResult_ClosingSignedDecodeErrorZ* operator ->() const { return &self; }
2563 };
2564 class CResult_HolderCommitmentTransactionDecodeErrorZ {
2565 private:
2566         LDKCResult_HolderCommitmentTransactionDecodeErrorZ self;
2567 public:
2568         CResult_HolderCommitmentTransactionDecodeErrorZ(const CResult_HolderCommitmentTransactionDecodeErrorZ&) = delete;
2569         CResult_HolderCommitmentTransactionDecodeErrorZ(CResult_HolderCommitmentTransactionDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_HolderCommitmentTransactionDecodeErrorZ)); }
2570         CResult_HolderCommitmentTransactionDecodeErrorZ(LDKCResult_HolderCommitmentTransactionDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_HolderCommitmentTransactionDecodeErrorZ)); }
2571         operator LDKCResult_HolderCommitmentTransactionDecodeErrorZ() && { LDKCResult_HolderCommitmentTransactionDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_HolderCommitmentTransactionDecodeErrorZ)); return res; }
2572         ~CResult_HolderCommitmentTransactionDecodeErrorZ() { CResult_HolderCommitmentTransactionDecodeErrorZ_free(self); }
2573         CResult_HolderCommitmentTransactionDecodeErrorZ& operator=(CResult_HolderCommitmentTransactionDecodeErrorZ&& o) { CResult_HolderCommitmentTransactionDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_HolderCommitmentTransactionDecodeErrorZ)); return *this; }
2574         LDKCResult_HolderCommitmentTransactionDecodeErrorZ* operator &() { return &self; }
2575         LDKCResult_HolderCommitmentTransactionDecodeErrorZ* operator ->() { return &self; }
2576         const LDKCResult_HolderCommitmentTransactionDecodeErrorZ* operator &() const { return &self; }
2577         const LDKCResult_HolderCommitmentTransactionDecodeErrorZ* operator ->() const { return &self; }
2578 };
2579 class CVec_CResult_NoneAPIErrorZZ {
2580 private:
2581         LDKCVec_CResult_NoneAPIErrorZZ self;
2582 public:
2583         CVec_CResult_NoneAPIErrorZZ(const CVec_CResult_NoneAPIErrorZZ&) = delete;
2584         CVec_CResult_NoneAPIErrorZZ(CVec_CResult_NoneAPIErrorZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_CResult_NoneAPIErrorZZ)); }
2585         CVec_CResult_NoneAPIErrorZZ(LDKCVec_CResult_NoneAPIErrorZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_CResult_NoneAPIErrorZZ)); }
2586         operator LDKCVec_CResult_NoneAPIErrorZZ() && { LDKCVec_CResult_NoneAPIErrorZZ res = self; memset(&self, 0, sizeof(LDKCVec_CResult_NoneAPIErrorZZ)); return res; }
2587         ~CVec_CResult_NoneAPIErrorZZ() { CVec_CResult_NoneAPIErrorZZ_free(self); }
2588         CVec_CResult_NoneAPIErrorZZ& operator=(CVec_CResult_NoneAPIErrorZZ&& o) { CVec_CResult_NoneAPIErrorZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_CResult_NoneAPIErrorZZ)); return *this; }
2589         LDKCVec_CResult_NoneAPIErrorZZ* operator &() { return &self; }
2590         LDKCVec_CResult_NoneAPIErrorZZ* operator ->() { return &self; }
2591         const LDKCVec_CResult_NoneAPIErrorZZ* operator &() const { return &self; }
2592         const LDKCVec_CResult_NoneAPIErrorZZ* operator ->() const { return &self; }
2593 };
2594 class CResult_SignatureNoneZ {
2595 private:
2596         LDKCResult_SignatureNoneZ self;
2597 public:
2598         CResult_SignatureNoneZ(const CResult_SignatureNoneZ&) = delete;
2599         CResult_SignatureNoneZ(CResult_SignatureNoneZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_SignatureNoneZ)); }
2600         CResult_SignatureNoneZ(LDKCResult_SignatureNoneZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_SignatureNoneZ)); }
2601         operator LDKCResult_SignatureNoneZ() && { LDKCResult_SignatureNoneZ res = self; memset(&self, 0, sizeof(LDKCResult_SignatureNoneZ)); return res; }
2602         ~CResult_SignatureNoneZ() { CResult_SignatureNoneZ_free(self); }
2603         CResult_SignatureNoneZ& operator=(CResult_SignatureNoneZ&& o) { CResult_SignatureNoneZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_SignatureNoneZ)); return *this; }
2604         LDKCResult_SignatureNoneZ* operator &() { return &self; }
2605         LDKCResult_SignatureNoneZ* operator ->() { return &self; }
2606         const LDKCResult_SignatureNoneZ* operator &() const { return &self; }
2607         const LDKCResult_SignatureNoneZ* operator ->() const { return &self; }
2608 };
2609 class C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ {
2610 private:
2611         LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ self;
2612 public:
2613         C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ(const C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ&) = delete;
2614         C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ(C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ)); }
2615         C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ(LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ)); }
2616         operator LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ() && { LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ)); return res; }
2617         ~C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ() { C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_free(self); }
2618         C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ& operator=(C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ&& o) { C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ)); return *this; }
2619         LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ* operator &() { return &self; }
2620         LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ* operator ->() { return &self; }
2621         const LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ* operator &() const { return &self; }
2622         const LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ* operator ->() const { return &self; }
2623 };
2624 class CVec_RouteHintHopZ {
2625 private:
2626         LDKCVec_RouteHintHopZ self;
2627 public:
2628         CVec_RouteHintHopZ(const CVec_RouteHintHopZ&) = delete;
2629         CVec_RouteHintHopZ(CVec_RouteHintHopZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_RouteHintHopZ)); }
2630         CVec_RouteHintHopZ(LDKCVec_RouteHintHopZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_RouteHintHopZ)); }
2631         operator LDKCVec_RouteHintHopZ() && { LDKCVec_RouteHintHopZ res = self; memset(&self, 0, sizeof(LDKCVec_RouteHintHopZ)); return res; }
2632         ~CVec_RouteHintHopZ() { CVec_RouteHintHopZ_free(self); }
2633         CVec_RouteHintHopZ& operator=(CVec_RouteHintHopZ&& o) { CVec_RouteHintHopZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_RouteHintHopZ)); return *this; }
2634         LDKCVec_RouteHintHopZ* operator &() { return &self; }
2635         LDKCVec_RouteHintHopZ* operator ->() { return &self; }
2636         const LDKCVec_RouteHintHopZ* operator &() const { return &self; }
2637         const LDKCVec_RouteHintHopZ* operator ->() const { return &self; }
2638 };
2639 class CResult_InitDecodeErrorZ {
2640 private:
2641         LDKCResult_InitDecodeErrorZ self;
2642 public:
2643         CResult_InitDecodeErrorZ(const CResult_InitDecodeErrorZ&) = delete;
2644         CResult_InitDecodeErrorZ(CResult_InitDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_InitDecodeErrorZ)); }
2645         CResult_InitDecodeErrorZ(LDKCResult_InitDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_InitDecodeErrorZ)); }
2646         operator LDKCResult_InitDecodeErrorZ() && { LDKCResult_InitDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_InitDecodeErrorZ)); return res; }
2647         ~CResult_InitDecodeErrorZ() { CResult_InitDecodeErrorZ_free(self); }
2648         CResult_InitDecodeErrorZ& operator=(CResult_InitDecodeErrorZ&& o) { CResult_InitDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_InitDecodeErrorZ)); return *this; }
2649         LDKCResult_InitDecodeErrorZ* operator &() { return &self; }
2650         LDKCResult_InitDecodeErrorZ* operator ->() { return &self; }
2651         const LDKCResult_InitDecodeErrorZ* operator &() const { return &self; }
2652         const LDKCResult_InitDecodeErrorZ* operator ->() const { return &self; }
2653 };
2654 class CResult_OutPointDecodeErrorZ {
2655 private:
2656         LDKCResult_OutPointDecodeErrorZ self;
2657 public:
2658         CResult_OutPointDecodeErrorZ(const CResult_OutPointDecodeErrorZ&) = delete;
2659         CResult_OutPointDecodeErrorZ(CResult_OutPointDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_OutPointDecodeErrorZ)); }
2660         CResult_OutPointDecodeErrorZ(LDKCResult_OutPointDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_OutPointDecodeErrorZ)); }
2661         operator LDKCResult_OutPointDecodeErrorZ() && { LDKCResult_OutPointDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_OutPointDecodeErrorZ)); return res; }
2662         ~CResult_OutPointDecodeErrorZ() { CResult_OutPointDecodeErrorZ_free(self); }
2663         CResult_OutPointDecodeErrorZ& operator=(CResult_OutPointDecodeErrorZ&& o) { CResult_OutPointDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_OutPointDecodeErrorZ)); return *this; }
2664         LDKCResult_OutPointDecodeErrorZ* operator &() { return &self; }
2665         LDKCResult_OutPointDecodeErrorZ* operator ->() { return &self; }
2666         const LDKCResult_OutPointDecodeErrorZ* operator &() const { return &self; }
2667         const LDKCResult_OutPointDecodeErrorZ* operator ->() const { return &self; }
2668 };
2669 class CVec_ChannelDetailsZ {
2670 private:
2671         LDKCVec_ChannelDetailsZ self;
2672 public:
2673         CVec_ChannelDetailsZ(const CVec_ChannelDetailsZ&) = delete;
2674         CVec_ChannelDetailsZ(CVec_ChannelDetailsZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_ChannelDetailsZ)); }
2675         CVec_ChannelDetailsZ(LDKCVec_ChannelDetailsZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_ChannelDetailsZ)); }
2676         operator LDKCVec_ChannelDetailsZ() && { LDKCVec_ChannelDetailsZ res = self; memset(&self, 0, sizeof(LDKCVec_ChannelDetailsZ)); return res; }
2677         ~CVec_ChannelDetailsZ() { CVec_ChannelDetailsZ_free(self); }
2678         CVec_ChannelDetailsZ& operator=(CVec_ChannelDetailsZ&& o) { CVec_ChannelDetailsZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_ChannelDetailsZ)); return *this; }
2679         LDKCVec_ChannelDetailsZ* operator &() { return &self; }
2680         LDKCVec_ChannelDetailsZ* operator ->() { return &self; }
2681         const LDKCVec_ChannelDetailsZ* operator &() const { return &self; }
2682         const LDKCVec_ChannelDetailsZ* operator ->() const { return &self; }
2683 };
2684 class CResult_SignDecodeErrorZ {
2685 private:
2686         LDKCResult_SignDecodeErrorZ self;
2687 public:
2688         CResult_SignDecodeErrorZ(const CResult_SignDecodeErrorZ&) = delete;
2689         CResult_SignDecodeErrorZ(CResult_SignDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_SignDecodeErrorZ)); }
2690         CResult_SignDecodeErrorZ(LDKCResult_SignDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_SignDecodeErrorZ)); }
2691         operator LDKCResult_SignDecodeErrorZ() && { LDKCResult_SignDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_SignDecodeErrorZ)); return res; }
2692         ~CResult_SignDecodeErrorZ() { CResult_SignDecodeErrorZ_free(self); }
2693         CResult_SignDecodeErrorZ& operator=(CResult_SignDecodeErrorZ&& o) { CResult_SignDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_SignDecodeErrorZ)); return *this; }
2694         LDKCResult_SignDecodeErrorZ* operator &() { return &self; }
2695         LDKCResult_SignDecodeErrorZ* operator ->() { return &self; }
2696         const LDKCResult_SignDecodeErrorZ* operator &() const { return &self; }
2697         const LDKCResult_SignDecodeErrorZ* operator ->() const { return &self; }
2698 };
2699 class CVec_MessageSendEventZ {
2700 private:
2701         LDKCVec_MessageSendEventZ self;
2702 public:
2703         CVec_MessageSendEventZ(const CVec_MessageSendEventZ&) = delete;
2704         CVec_MessageSendEventZ(CVec_MessageSendEventZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_MessageSendEventZ)); }
2705         CVec_MessageSendEventZ(LDKCVec_MessageSendEventZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_MessageSendEventZ)); }
2706         operator LDKCVec_MessageSendEventZ() && { LDKCVec_MessageSendEventZ res = self; memset(&self, 0, sizeof(LDKCVec_MessageSendEventZ)); return res; }
2707         ~CVec_MessageSendEventZ() { CVec_MessageSendEventZ_free(self); }
2708         CVec_MessageSendEventZ& operator=(CVec_MessageSendEventZ&& o) { CVec_MessageSendEventZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_MessageSendEventZ)); return *this; }
2709         LDKCVec_MessageSendEventZ* operator &() { return &self; }
2710         LDKCVec_MessageSendEventZ* operator ->() { return &self; }
2711         const LDKCVec_MessageSendEventZ* operator &() const { return &self; }
2712         const LDKCVec_MessageSendEventZ* operator ->() const { return &self; }
2713 };
2714 class C2Tuple_OutPointScriptZ {
2715 private:
2716         LDKC2Tuple_OutPointScriptZ self;
2717 public:
2718         C2Tuple_OutPointScriptZ(const C2Tuple_OutPointScriptZ&) = delete;
2719         C2Tuple_OutPointScriptZ(C2Tuple_OutPointScriptZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_OutPointScriptZ)); }
2720         C2Tuple_OutPointScriptZ(LDKC2Tuple_OutPointScriptZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_OutPointScriptZ)); }
2721         operator LDKC2Tuple_OutPointScriptZ() && { LDKC2Tuple_OutPointScriptZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_OutPointScriptZ)); return res; }
2722         ~C2Tuple_OutPointScriptZ() { C2Tuple_OutPointScriptZ_free(self); }
2723         C2Tuple_OutPointScriptZ& operator=(C2Tuple_OutPointScriptZ&& o) { C2Tuple_OutPointScriptZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_OutPointScriptZ)); return *this; }
2724         LDKC2Tuple_OutPointScriptZ* operator &() { return &self; }
2725         LDKC2Tuple_OutPointScriptZ* operator ->() { return &self; }
2726         const LDKC2Tuple_OutPointScriptZ* operator &() const { return &self; }
2727         const LDKC2Tuple_OutPointScriptZ* operator ->() const { return &self; }
2728 };
2729 class CResult_UpdateFailMalformedHTLCDecodeErrorZ {
2730 private:
2731         LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ self;
2732 public:
2733         CResult_UpdateFailMalformedHTLCDecodeErrorZ(const CResult_UpdateFailMalformedHTLCDecodeErrorZ&) = delete;
2734         CResult_UpdateFailMalformedHTLCDecodeErrorZ(CResult_UpdateFailMalformedHTLCDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UpdateFailMalformedHTLCDecodeErrorZ)); }
2735         CResult_UpdateFailMalformedHTLCDecodeErrorZ(LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ)); }
2736         operator LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ() && { LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ)); return res; }
2737         ~CResult_UpdateFailMalformedHTLCDecodeErrorZ() { CResult_UpdateFailMalformedHTLCDecodeErrorZ_free(self); }
2738         CResult_UpdateFailMalformedHTLCDecodeErrorZ& operator=(CResult_UpdateFailMalformedHTLCDecodeErrorZ&& o) { CResult_UpdateFailMalformedHTLCDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UpdateFailMalformedHTLCDecodeErrorZ)); return *this; }
2739         LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ* operator &() { return &self; }
2740         LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ* operator ->() { return &self; }
2741         const LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ* operator &() const { return &self; }
2742         const LDKCResult_UpdateFailMalformedHTLCDecodeErrorZ* operator ->() const { return &self; }
2743 };
2744 class CVec_NodeAnnouncementZ {
2745 private:
2746         LDKCVec_NodeAnnouncementZ self;
2747 public:
2748         CVec_NodeAnnouncementZ(const CVec_NodeAnnouncementZ&) = delete;
2749         CVec_NodeAnnouncementZ(CVec_NodeAnnouncementZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_NodeAnnouncementZ)); }
2750         CVec_NodeAnnouncementZ(LDKCVec_NodeAnnouncementZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_NodeAnnouncementZ)); }
2751         operator LDKCVec_NodeAnnouncementZ() && { LDKCVec_NodeAnnouncementZ res = self; memset(&self, 0, sizeof(LDKCVec_NodeAnnouncementZ)); return res; }
2752         ~CVec_NodeAnnouncementZ() { CVec_NodeAnnouncementZ_free(self); }
2753         CVec_NodeAnnouncementZ& operator=(CVec_NodeAnnouncementZ&& o) { CVec_NodeAnnouncementZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_NodeAnnouncementZ)); return *this; }
2754         LDKCVec_NodeAnnouncementZ* operator &() { return &self; }
2755         LDKCVec_NodeAnnouncementZ* operator ->() { return &self; }
2756         const LDKCVec_NodeAnnouncementZ* operator &() const { return &self; }
2757         const LDKCVec_NodeAnnouncementZ* operator ->() const { return &self; }
2758 };
2759 class CResult_UnsignedChannelAnnouncementDecodeErrorZ {
2760 private:
2761         LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ self;
2762 public:
2763         CResult_UnsignedChannelAnnouncementDecodeErrorZ(const CResult_UnsignedChannelAnnouncementDecodeErrorZ&) = delete;
2764         CResult_UnsignedChannelAnnouncementDecodeErrorZ(CResult_UnsignedChannelAnnouncementDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UnsignedChannelAnnouncementDecodeErrorZ)); }
2765         CResult_UnsignedChannelAnnouncementDecodeErrorZ(LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ)); }
2766         operator LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ() && { LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ)); return res; }
2767         ~CResult_UnsignedChannelAnnouncementDecodeErrorZ() { CResult_UnsignedChannelAnnouncementDecodeErrorZ_free(self); }
2768         CResult_UnsignedChannelAnnouncementDecodeErrorZ& operator=(CResult_UnsignedChannelAnnouncementDecodeErrorZ&& o) { CResult_UnsignedChannelAnnouncementDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UnsignedChannelAnnouncementDecodeErrorZ)); return *this; }
2769         LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ* operator &() { return &self; }
2770         LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ* operator ->() { return &self; }
2771         const LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ* operator &() const { return &self; }
2772         const LDKCResult_UnsignedChannelAnnouncementDecodeErrorZ* operator ->() const { return &self; }
2773 };
2774 class CResult_PongDecodeErrorZ {
2775 private:
2776         LDKCResult_PongDecodeErrorZ self;
2777 public:
2778         CResult_PongDecodeErrorZ(const CResult_PongDecodeErrorZ&) = delete;
2779         CResult_PongDecodeErrorZ(CResult_PongDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_PongDecodeErrorZ)); }
2780         CResult_PongDecodeErrorZ(LDKCResult_PongDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_PongDecodeErrorZ)); }
2781         operator LDKCResult_PongDecodeErrorZ() && { LDKCResult_PongDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_PongDecodeErrorZ)); return res; }
2782         ~CResult_PongDecodeErrorZ() { CResult_PongDecodeErrorZ_free(self); }
2783         CResult_PongDecodeErrorZ& operator=(CResult_PongDecodeErrorZ&& o) { CResult_PongDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_PongDecodeErrorZ)); return *this; }
2784         LDKCResult_PongDecodeErrorZ* operator &() { return &self; }
2785         LDKCResult_PongDecodeErrorZ* operator ->() { return &self; }
2786         const LDKCResult_PongDecodeErrorZ* operator &() const { return &self; }
2787         const LDKCResult_PongDecodeErrorZ* operator ->() const { return &self; }
2788 };
2789 class CVec_TxidZ {
2790 private:
2791         LDKCVec_TxidZ self;
2792 public:
2793         CVec_TxidZ(const CVec_TxidZ&) = delete;
2794         CVec_TxidZ(CVec_TxidZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_TxidZ)); }
2795         CVec_TxidZ(LDKCVec_TxidZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_TxidZ)); }
2796         operator LDKCVec_TxidZ() && { LDKCVec_TxidZ res = self; memset(&self, 0, sizeof(LDKCVec_TxidZ)); return res; }
2797         ~CVec_TxidZ() { CVec_TxidZ_free(self); }
2798         CVec_TxidZ& operator=(CVec_TxidZ&& o) { CVec_TxidZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_TxidZ)); return *this; }
2799         LDKCVec_TxidZ* operator &() { return &self; }
2800         LDKCVec_TxidZ* operator ->() { return &self; }
2801         const LDKCVec_TxidZ* operator &() const { return &self; }
2802         const LDKCVec_TxidZ* operator ->() const { return &self; }
2803 };
2804 class CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ {
2805 private:
2806         LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ self;
2807 public:
2808         CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ(const CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ&) = delete;
2809         CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ(CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ)); }
2810         CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ)); }
2811         operator LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ() && { LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ res = self; memset(&self, 0, sizeof(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ)); return res; }
2812         ~CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ() { CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_free(self); }
2813         CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ& operator=(CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ&& o) { CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ)); return *this; }
2814         LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* operator &() { return &self; }
2815         LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* operator ->() { return &self; }
2816         const LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* operator &() const { return &self; }
2817         const LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* operator ->() const { return &self; }
2818 };
2819 class CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ {
2820 private:
2821         LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ self;
2822 public:
2823         CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ(const CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ&) = delete;
2824         CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ(CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ)); }
2825         CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ(LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ)); }
2826         operator LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ() && { LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ res = self; memset(&self, 0, sizeof(LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ)); return res; }
2827         ~CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ() { CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ_free(self); }
2828         CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ& operator=(CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ&& o) { CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ)); return *this; }
2829         LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ* operator &() { return &self; }
2830         LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ* operator ->() { return &self; }
2831         const LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ* operator &() const { return &self; }
2832         const LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ* operator ->() const { return &self; }
2833 };
2834 class CResult_NoneMonitorUpdateErrorZ {
2835 private:
2836         LDKCResult_NoneMonitorUpdateErrorZ self;
2837 public:
2838         CResult_NoneMonitorUpdateErrorZ(const CResult_NoneMonitorUpdateErrorZ&) = delete;
2839         CResult_NoneMonitorUpdateErrorZ(CResult_NoneMonitorUpdateErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NoneMonitorUpdateErrorZ)); }
2840         CResult_NoneMonitorUpdateErrorZ(LDKCResult_NoneMonitorUpdateErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NoneMonitorUpdateErrorZ)); }
2841         operator LDKCResult_NoneMonitorUpdateErrorZ() && { LDKCResult_NoneMonitorUpdateErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NoneMonitorUpdateErrorZ)); return res; }
2842         ~CResult_NoneMonitorUpdateErrorZ() { CResult_NoneMonitorUpdateErrorZ_free(self); }
2843         CResult_NoneMonitorUpdateErrorZ& operator=(CResult_NoneMonitorUpdateErrorZ&& o) { CResult_NoneMonitorUpdateErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NoneMonitorUpdateErrorZ)); return *this; }
2844         LDKCResult_NoneMonitorUpdateErrorZ* operator &() { return &self; }
2845         LDKCResult_NoneMonitorUpdateErrorZ* operator ->() { return &self; }
2846         const LDKCResult_NoneMonitorUpdateErrorZ* operator &() const { return &self; }
2847         const LDKCResult_NoneMonitorUpdateErrorZ* operator ->() const { return &self; }
2848 };
2849 class CResult_AcceptChannelDecodeErrorZ {
2850 private:
2851         LDKCResult_AcceptChannelDecodeErrorZ self;
2852 public:
2853         CResult_AcceptChannelDecodeErrorZ(const CResult_AcceptChannelDecodeErrorZ&) = delete;
2854         CResult_AcceptChannelDecodeErrorZ(CResult_AcceptChannelDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_AcceptChannelDecodeErrorZ)); }
2855         CResult_AcceptChannelDecodeErrorZ(LDKCResult_AcceptChannelDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_AcceptChannelDecodeErrorZ)); }
2856         operator LDKCResult_AcceptChannelDecodeErrorZ() && { LDKCResult_AcceptChannelDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_AcceptChannelDecodeErrorZ)); return res; }
2857         ~CResult_AcceptChannelDecodeErrorZ() { CResult_AcceptChannelDecodeErrorZ_free(self); }
2858         CResult_AcceptChannelDecodeErrorZ& operator=(CResult_AcceptChannelDecodeErrorZ&& o) { CResult_AcceptChannelDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_AcceptChannelDecodeErrorZ)); return *this; }
2859         LDKCResult_AcceptChannelDecodeErrorZ* operator &() { return &self; }
2860         LDKCResult_AcceptChannelDecodeErrorZ* operator ->() { return &self; }
2861         const LDKCResult_AcceptChannelDecodeErrorZ* operator &() const { return &self; }
2862         const LDKCResult_AcceptChannelDecodeErrorZ* operator ->() const { return &self; }
2863 };
2864 class CResult_CVec_CVec_u8ZZNoneZ {
2865 private:
2866         LDKCResult_CVec_CVec_u8ZZNoneZ self;
2867 public:
2868         CResult_CVec_CVec_u8ZZNoneZ(const CResult_CVec_CVec_u8ZZNoneZ&) = delete;
2869         CResult_CVec_CVec_u8ZZNoneZ(CResult_CVec_CVec_u8ZZNoneZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CVec_CVec_u8ZZNoneZ)); }
2870         CResult_CVec_CVec_u8ZZNoneZ(LDKCResult_CVec_CVec_u8ZZNoneZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ)); }
2871         operator LDKCResult_CVec_CVec_u8ZZNoneZ() && { LDKCResult_CVec_CVec_u8ZZNoneZ res = self; memset(&self, 0, sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ)); return res; }
2872         ~CResult_CVec_CVec_u8ZZNoneZ() { CResult_CVec_CVec_u8ZZNoneZ_free(self); }
2873         CResult_CVec_CVec_u8ZZNoneZ& operator=(CResult_CVec_CVec_u8ZZNoneZ&& o) { CResult_CVec_CVec_u8ZZNoneZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CVec_CVec_u8ZZNoneZ)); return *this; }
2874         LDKCResult_CVec_CVec_u8ZZNoneZ* operator &() { return &self; }
2875         LDKCResult_CVec_CVec_u8ZZNoneZ* operator ->() { return &self; }
2876         const LDKCResult_CVec_CVec_u8ZZNoneZ* operator &() const { return &self; }
2877         const LDKCResult_CVec_CVec_u8ZZNoneZ* operator ->() const { return &self; }
2878 };
2879 class CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ {
2880 private:
2881         LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ self;
2882 public:
2883         CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ(const CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ&) = delete;
2884         CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ(CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ)); }
2885         CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ(LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ)); }
2886         operator LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ() && { LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ)); return res; }
2887         ~CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ() { CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_free(self); }
2888         CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ& operator=(CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ&& o) { CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ)); return *this; }
2889         LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ* operator &() { return &self; }
2890         LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ* operator ->() { return &self; }
2891         const LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ* operator &() const { return &self; }
2892         const LDKCResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ* operator ->() const { return &self; }
2893 };
2894 class C2Tuple_BlockHashChannelManagerZ {
2895 private:
2896         LDKC2Tuple_BlockHashChannelManagerZ self;
2897 public:
2898         C2Tuple_BlockHashChannelManagerZ(const C2Tuple_BlockHashChannelManagerZ&) = delete;
2899         C2Tuple_BlockHashChannelManagerZ(C2Tuple_BlockHashChannelManagerZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_BlockHashChannelManagerZ)); }
2900         C2Tuple_BlockHashChannelManagerZ(LDKC2Tuple_BlockHashChannelManagerZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_BlockHashChannelManagerZ)); }
2901         operator LDKC2Tuple_BlockHashChannelManagerZ() && { LDKC2Tuple_BlockHashChannelManagerZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_BlockHashChannelManagerZ)); return res; }
2902         ~C2Tuple_BlockHashChannelManagerZ() { C2Tuple_BlockHashChannelManagerZ_free(self); }
2903         C2Tuple_BlockHashChannelManagerZ& operator=(C2Tuple_BlockHashChannelManagerZ&& o) { C2Tuple_BlockHashChannelManagerZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_BlockHashChannelManagerZ)); return *this; }
2904         LDKC2Tuple_BlockHashChannelManagerZ* operator &() { return &self; }
2905         LDKC2Tuple_BlockHashChannelManagerZ* operator ->() { return &self; }
2906         const LDKC2Tuple_BlockHashChannelManagerZ* operator &() const { return &self; }
2907         const LDKC2Tuple_BlockHashChannelManagerZ* operator ->() const { return &self; }
2908 };
2909 class CResult_ChannelTransactionParametersDecodeErrorZ {
2910 private:
2911         LDKCResult_ChannelTransactionParametersDecodeErrorZ self;
2912 public:
2913         CResult_ChannelTransactionParametersDecodeErrorZ(const CResult_ChannelTransactionParametersDecodeErrorZ&) = delete;
2914         CResult_ChannelTransactionParametersDecodeErrorZ(CResult_ChannelTransactionParametersDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelTransactionParametersDecodeErrorZ)); }
2915         CResult_ChannelTransactionParametersDecodeErrorZ(LDKCResult_ChannelTransactionParametersDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelTransactionParametersDecodeErrorZ)); }
2916         operator LDKCResult_ChannelTransactionParametersDecodeErrorZ() && { LDKCResult_ChannelTransactionParametersDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelTransactionParametersDecodeErrorZ)); return res; }
2917         ~CResult_ChannelTransactionParametersDecodeErrorZ() { CResult_ChannelTransactionParametersDecodeErrorZ_free(self); }
2918         CResult_ChannelTransactionParametersDecodeErrorZ& operator=(CResult_ChannelTransactionParametersDecodeErrorZ&& o) { CResult_ChannelTransactionParametersDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelTransactionParametersDecodeErrorZ)); return *this; }
2919         LDKCResult_ChannelTransactionParametersDecodeErrorZ* operator &() { return &self; }
2920         LDKCResult_ChannelTransactionParametersDecodeErrorZ* operator ->() { return &self; }
2921         const LDKCResult_ChannelTransactionParametersDecodeErrorZ* operator &() const { return &self; }
2922         const LDKCResult_ChannelTransactionParametersDecodeErrorZ* operator ->() const { return &self; }
2923 };
2924 class CVec_SignatureZ {
2925 private:
2926         LDKCVec_SignatureZ self;
2927 public:
2928         CVec_SignatureZ(const CVec_SignatureZ&) = delete;
2929         CVec_SignatureZ(CVec_SignatureZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_SignatureZ)); }
2930         CVec_SignatureZ(LDKCVec_SignatureZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_SignatureZ)); }
2931         operator LDKCVec_SignatureZ() && { LDKCVec_SignatureZ res = self; memset(&self, 0, sizeof(LDKCVec_SignatureZ)); return res; }
2932         ~CVec_SignatureZ() { CVec_SignatureZ_free(self); }
2933         CVec_SignatureZ& operator=(CVec_SignatureZ&& o) { CVec_SignatureZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_SignatureZ)); return *this; }
2934         LDKCVec_SignatureZ* operator &() { return &self; }
2935         LDKCVec_SignatureZ* operator ->() { return &self; }
2936         const LDKCVec_SignatureZ* operator &() const { return &self; }
2937         const LDKCVec_SignatureZ* operator ->() const { return &self; }
2938 };
2939 class CVec_u64Z {
2940 private:
2941         LDKCVec_u64Z self;
2942 public:
2943         CVec_u64Z(const CVec_u64Z&) = delete;
2944         CVec_u64Z(CVec_u64Z&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_u64Z)); }
2945         CVec_u64Z(LDKCVec_u64Z&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_u64Z)); }
2946         operator LDKCVec_u64Z() && { LDKCVec_u64Z res = self; memset(&self, 0, sizeof(LDKCVec_u64Z)); return res; }
2947         ~CVec_u64Z() { CVec_u64Z_free(self); }
2948         CVec_u64Z& operator=(CVec_u64Z&& o) { CVec_u64Z_free(self); self = o.self; memset(&o, 0, sizeof(CVec_u64Z)); return *this; }
2949         LDKCVec_u64Z* operator &() { return &self; }
2950         LDKCVec_u64Z* operator ->() { return &self; }
2951         const LDKCVec_u64Z* operator &() const { return &self; }
2952         const LDKCVec_u64Z* operator ->() const { return &self; }
2953 };
2954 class CResult_StringErrorZ {
2955 private:
2956         LDKCResult_StringErrorZ self;
2957 public:
2958         CResult_StringErrorZ(const CResult_StringErrorZ&) = delete;
2959         CResult_StringErrorZ(CResult_StringErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_StringErrorZ)); }
2960         CResult_StringErrorZ(LDKCResult_StringErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_StringErrorZ)); }
2961         operator LDKCResult_StringErrorZ() && { LDKCResult_StringErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_StringErrorZ)); return res; }
2962         ~CResult_StringErrorZ() { CResult_StringErrorZ_free(self); }
2963         CResult_StringErrorZ& operator=(CResult_StringErrorZ&& o) { CResult_StringErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_StringErrorZ)); return *this; }
2964         LDKCResult_StringErrorZ* operator &() { return &self; }
2965         LDKCResult_StringErrorZ* operator ->() { return &self; }
2966         const LDKCResult_StringErrorZ* operator &() const { return &self; }
2967         const LDKCResult_StringErrorZ* operator ->() const { return &self; }
2968 };
2969 class CResult_NoneErrorZ {
2970 private:
2971         LDKCResult_NoneErrorZ self;
2972 public:
2973         CResult_NoneErrorZ(const CResult_NoneErrorZ&) = delete;
2974         CResult_NoneErrorZ(CResult_NoneErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NoneErrorZ)); }
2975         CResult_NoneErrorZ(LDKCResult_NoneErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NoneErrorZ)); }
2976         operator LDKCResult_NoneErrorZ() && { LDKCResult_NoneErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NoneErrorZ)); return res; }
2977         ~CResult_NoneErrorZ() { CResult_NoneErrorZ_free(self); }
2978         CResult_NoneErrorZ& operator=(CResult_NoneErrorZ&& o) { CResult_NoneErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NoneErrorZ)); return *this; }
2979         LDKCResult_NoneErrorZ* operator &() { return &self; }
2980         LDKCResult_NoneErrorZ* operator ->() { return &self; }
2981         const LDKCResult_NoneErrorZ* operator &() const { return &self; }
2982         const LDKCResult_NoneErrorZ* operator ->() const { return &self; }
2983 };
2984 class C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ {
2985 private:
2986         LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ self;
2987 public:
2988         C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ(const C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ&) = delete;
2989         C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ(C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ)); }
2990         C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ)); }
2991         operator LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ() && { LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ)); return res; }
2992         ~C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ() { C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(self); }
2993         C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ& operator=(C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ&& o) { C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ)); return *this; }
2994         LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* operator &() { return &self; }
2995         LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* operator ->() { return &self; }
2996         const LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* operator &() const { return &self; }
2997         const LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* operator ->() const { return &self; }
2998 };
2999 class CVec_CVec_RouteHopZZ {
3000 private:
3001         LDKCVec_CVec_RouteHopZZ self;
3002 public:
3003         CVec_CVec_RouteHopZZ(const CVec_CVec_RouteHopZZ&) = delete;
3004         CVec_CVec_RouteHopZZ(CVec_CVec_RouteHopZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_CVec_RouteHopZZ)); }
3005         CVec_CVec_RouteHopZZ(LDKCVec_CVec_RouteHopZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_CVec_RouteHopZZ)); }
3006         operator LDKCVec_CVec_RouteHopZZ() && { LDKCVec_CVec_RouteHopZZ res = self; memset(&self, 0, sizeof(LDKCVec_CVec_RouteHopZZ)); return res; }
3007         ~CVec_CVec_RouteHopZZ() { CVec_CVec_RouteHopZZ_free(self); }
3008         CVec_CVec_RouteHopZZ& operator=(CVec_CVec_RouteHopZZ&& o) { CVec_CVec_RouteHopZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_CVec_RouteHopZZ)); return *this; }
3009         LDKCVec_CVec_RouteHopZZ* operator &() { return &self; }
3010         LDKCVec_CVec_RouteHopZZ* operator ->() { return &self; }
3011         const LDKCVec_CVec_RouteHopZZ* operator &() const { return &self; }
3012         const LDKCVec_CVec_RouteHopZZ* operator ->() const { return &self; }
3013 };
3014 class CResult_TrustedCommitmentTransactionNoneZ {
3015 private:
3016         LDKCResult_TrustedCommitmentTransactionNoneZ self;
3017 public:
3018         CResult_TrustedCommitmentTransactionNoneZ(const CResult_TrustedCommitmentTransactionNoneZ&) = delete;
3019         CResult_TrustedCommitmentTransactionNoneZ(CResult_TrustedCommitmentTransactionNoneZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_TrustedCommitmentTransactionNoneZ)); }
3020         CResult_TrustedCommitmentTransactionNoneZ(LDKCResult_TrustedCommitmentTransactionNoneZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_TrustedCommitmentTransactionNoneZ)); }
3021         operator LDKCResult_TrustedCommitmentTransactionNoneZ() && { LDKCResult_TrustedCommitmentTransactionNoneZ res = self; memset(&self, 0, sizeof(LDKCResult_TrustedCommitmentTransactionNoneZ)); return res; }
3022         ~CResult_TrustedCommitmentTransactionNoneZ() { CResult_TrustedCommitmentTransactionNoneZ_free(self); }
3023         CResult_TrustedCommitmentTransactionNoneZ& operator=(CResult_TrustedCommitmentTransactionNoneZ&& o) { CResult_TrustedCommitmentTransactionNoneZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_TrustedCommitmentTransactionNoneZ)); return *this; }
3024         LDKCResult_TrustedCommitmentTransactionNoneZ* operator &() { return &self; }
3025         LDKCResult_TrustedCommitmentTransactionNoneZ* operator ->() { return &self; }
3026         const LDKCResult_TrustedCommitmentTransactionNoneZ* operator &() const { return &self; }
3027         const LDKCResult_TrustedCommitmentTransactionNoneZ* operator ->() const { return &self; }
3028 };
3029 class CResult_NoneLightningErrorZ {
3030 private:
3031         LDKCResult_NoneLightningErrorZ self;
3032 public:
3033         CResult_NoneLightningErrorZ(const CResult_NoneLightningErrorZ&) = delete;
3034         CResult_NoneLightningErrorZ(CResult_NoneLightningErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NoneLightningErrorZ)); }
3035         CResult_NoneLightningErrorZ(LDKCResult_NoneLightningErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NoneLightningErrorZ)); }
3036         operator LDKCResult_NoneLightningErrorZ() && { LDKCResult_NoneLightningErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NoneLightningErrorZ)); return res; }
3037         ~CResult_NoneLightningErrorZ() { CResult_NoneLightningErrorZ_free(self); }
3038         CResult_NoneLightningErrorZ& operator=(CResult_NoneLightningErrorZ&& o) { CResult_NoneLightningErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NoneLightningErrorZ)); return *this; }
3039         LDKCResult_NoneLightningErrorZ* operator &() { return &self; }
3040         LDKCResult_NoneLightningErrorZ* operator ->() { return &self; }
3041         const LDKCResult_NoneLightningErrorZ* operator &() const { return &self; }
3042         const LDKCResult_NoneLightningErrorZ* operator ->() const { return &self; }
3043 };
3044 class CResult_NonePeerHandleErrorZ {
3045 private:
3046         LDKCResult_NonePeerHandleErrorZ self;
3047 public:
3048         CResult_NonePeerHandleErrorZ(const CResult_NonePeerHandleErrorZ&) = delete;
3049         CResult_NonePeerHandleErrorZ(CResult_NonePeerHandleErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NonePeerHandleErrorZ)); }
3050         CResult_NonePeerHandleErrorZ(LDKCResult_NonePeerHandleErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NonePeerHandleErrorZ)); }
3051         operator LDKCResult_NonePeerHandleErrorZ() && { LDKCResult_NonePeerHandleErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NonePeerHandleErrorZ)); return res; }
3052         ~CResult_NonePeerHandleErrorZ() { CResult_NonePeerHandleErrorZ_free(self); }
3053         CResult_NonePeerHandleErrorZ& operator=(CResult_NonePeerHandleErrorZ&& o) { CResult_NonePeerHandleErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NonePeerHandleErrorZ)); return *this; }
3054         LDKCResult_NonePeerHandleErrorZ* operator &() { return &self; }
3055         LDKCResult_NonePeerHandleErrorZ* operator ->() { return &self; }
3056         const LDKCResult_NonePeerHandleErrorZ* operator &() const { return &self; }
3057         const LDKCResult_NonePeerHandleErrorZ* operator ->() const { return &self; }
3058 };
3059 class CResult_CVec_SignatureZNoneZ {
3060 private:
3061         LDKCResult_CVec_SignatureZNoneZ self;
3062 public:
3063         CResult_CVec_SignatureZNoneZ(const CResult_CVec_SignatureZNoneZ&) = delete;
3064         CResult_CVec_SignatureZNoneZ(CResult_CVec_SignatureZNoneZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CVec_SignatureZNoneZ)); }
3065         CResult_CVec_SignatureZNoneZ(LDKCResult_CVec_SignatureZNoneZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CVec_SignatureZNoneZ)); }
3066         operator LDKCResult_CVec_SignatureZNoneZ() && { LDKCResult_CVec_SignatureZNoneZ res = self; memset(&self, 0, sizeof(LDKCResult_CVec_SignatureZNoneZ)); return res; }
3067         ~CResult_CVec_SignatureZNoneZ() { CResult_CVec_SignatureZNoneZ_free(self); }
3068         CResult_CVec_SignatureZNoneZ& operator=(CResult_CVec_SignatureZNoneZ&& o) { CResult_CVec_SignatureZNoneZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CVec_SignatureZNoneZ)); return *this; }
3069         LDKCResult_CVec_SignatureZNoneZ* operator &() { return &self; }
3070         LDKCResult_CVec_SignatureZNoneZ* operator ->() { return &self; }
3071         const LDKCResult_CVec_SignatureZNoneZ* operator &() const { return &self; }
3072         const LDKCResult_CVec_SignatureZNoneZ* operator ->() const { return &self; }
3073 };
3074 class CResult_RoutingFeesDecodeErrorZ {
3075 private:
3076         LDKCResult_RoutingFeesDecodeErrorZ self;
3077 public:
3078         CResult_RoutingFeesDecodeErrorZ(const CResult_RoutingFeesDecodeErrorZ&) = delete;
3079         CResult_RoutingFeesDecodeErrorZ(CResult_RoutingFeesDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_RoutingFeesDecodeErrorZ)); }
3080         CResult_RoutingFeesDecodeErrorZ(LDKCResult_RoutingFeesDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_RoutingFeesDecodeErrorZ)); }
3081         operator LDKCResult_RoutingFeesDecodeErrorZ() && { LDKCResult_RoutingFeesDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_RoutingFeesDecodeErrorZ)); return res; }
3082         ~CResult_RoutingFeesDecodeErrorZ() { CResult_RoutingFeesDecodeErrorZ_free(self); }
3083         CResult_RoutingFeesDecodeErrorZ& operator=(CResult_RoutingFeesDecodeErrorZ&& o) { CResult_RoutingFeesDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_RoutingFeesDecodeErrorZ)); return *this; }
3084         LDKCResult_RoutingFeesDecodeErrorZ* operator &() { return &self; }
3085         LDKCResult_RoutingFeesDecodeErrorZ* operator ->() { return &self; }
3086         const LDKCResult_RoutingFeesDecodeErrorZ* operator &() const { return &self; }
3087         const LDKCResult_RoutingFeesDecodeErrorZ* operator ->() const { return &self; }
3088 };
3089 class CResult_QueryShortChannelIdsDecodeErrorZ {
3090 private:
3091         LDKCResult_QueryShortChannelIdsDecodeErrorZ self;
3092 public:
3093         CResult_QueryShortChannelIdsDecodeErrorZ(const CResult_QueryShortChannelIdsDecodeErrorZ&) = delete;
3094         CResult_QueryShortChannelIdsDecodeErrorZ(CResult_QueryShortChannelIdsDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_QueryShortChannelIdsDecodeErrorZ)); }
3095         CResult_QueryShortChannelIdsDecodeErrorZ(LDKCResult_QueryShortChannelIdsDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_QueryShortChannelIdsDecodeErrorZ)); }
3096         operator LDKCResult_QueryShortChannelIdsDecodeErrorZ() && { LDKCResult_QueryShortChannelIdsDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_QueryShortChannelIdsDecodeErrorZ)); return res; }
3097         ~CResult_QueryShortChannelIdsDecodeErrorZ() { CResult_QueryShortChannelIdsDecodeErrorZ_free(self); }
3098         CResult_QueryShortChannelIdsDecodeErrorZ& operator=(CResult_QueryShortChannelIdsDecodeErrorZ&& o) { CResult_QueryShortChannelIdsDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_QueryShortChannelIdsDecodeErrorZ)); return *this; }
3099         LDKCResult_QueryShortChannelIdsDecodeErrorZ* operator &() { return &self; }
3100         LDKCResult_QueryShortChannelIdsDecodeErrorZ* operator ->() { return &self; }
3101         const LDKCResult_QueryShortChannelIdsDecodeErrorZ* operator &() const { return &self; }
3102         const LDKCResult_QueryShortChannelIdsDecodeErrorZ* operator ->() const { return &self; }
3103 };
3104 class CResult_UpdateAddHTLCDecodeErrorZ {
3105 private:
3106         LDKCResult_UpdateAddHTLCDecodeErrorZ self;
3107 public:
3108         CResult_UpdateAddHTLCDecodeErrorZ(const CResult_UpdateAddHTLCDecodeErrorZ&) = delete;
3109         CResult_UpdateAddHTLCDecodeErrorZ(CResult_UpdateAddHTLCDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UpdateAddHTLCDecodeErrorZ)); }
3110         CResult_UpdateAddHTLCDecodeErrorZ(LDKCResult_UpdateAddHTLCDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UpdateAddHTLCDecodeErrorZ)); }
3111         operator LDKCResult_UpdateAddHTLCDecodeErrorZ() && { LDKCResult_UpdateAddHTLCDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UpdateAddHTLCDecodeErrorZ)); return res; }
3112         ~CResult_UpdateAddHTLCDecodeErrorZ() { CResult_UpdateAddHTLCDecodeErrorZ_free(self); }
3113         CResult_UpdateAddHTLCDecodeErrorZ& operator=(CResult_UpdateAddHTLCDecodeErrorZ&& o) { CResult_UpdateAddHTLCDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UpdateAddHTLCDecodeErrorZ)); return *this; }
3114         LDKCResult_UpdateAddHTLCDecodeErrorZ* operator &() { return &self; }
3115         LDKCResult_UpdateAddHTLCDecodeErrorZ* operator ->() { return &self; }
3116         const LDKCResult_UpdateAddHTLCDecodeErrorZ* operator &() const { return &self; }
3117         const LDKCResult_UpdateAddHTLCDecodeErrorZ* operator ->() const { return &self; }
3118 };
3119 class CResult_CounterpartyChannelTransactionParametersDecodeErrorZ {
3120 private:
3121         LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ self;
3122 public:
3123         CResult_CounterpartyChannelTransactionParametersDecodeErrorZ(const CResult_CounterpartyChannelTransactionParametersDecodeErrorZ&) = delete;
3124         CResult_CounterpartyChannelTransactionParametersDecodeErrorZ(CResult_CounterpartyChannelTransactionParametersDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CounterpartyChannelTransactionParametersDecodeErrorZ)); }
3125         CResult_CounterpartyChannelTransactionParametersDecodeErrorZ(LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ)); }
3126         operator LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ() && { LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ)); return res; }
3127         ~CResult_CounterpartyChannelTransactionParametersDecodeErrorZ() { CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_free(self); }
3128         CResult_CounterpartyChannelTransactionParametersDecodeErrorZ& operator=(CResult_CounterpartyChannelTransactionParametersDecodeErrorZ&& o) { CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CounterpartyChannelTransactionParametersDecodeErrorZ)); return *this; }
3129         LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ* operator &() { return &self; }
3130         LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ* operator ->() { return &self; }
3131         const LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ* operator &() const { return &self; }
3132         const LDKCResult_CounterpartyChannelTransactionParametersDecodeErrorZ* operator ->() const { return &self; }
3133 };
3134 class CResult_NoneAPIErrorZ {
3135 private:
3136         LDKCResult_NoneAPIErrorZ self;
3137 public:
3138         CResult_NoneAPIErrorZ(const CResult_NoneAPIErrorZ&) = delete;
3139         CResult_NoneAPIErrorZ(CResult_NoneAPIErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NoneAPIErrorZ)); }
3140         CResult_NoneAPIErrorZ(LDKCResult_NoneAPIErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NoneAPIErrorZ)); }
3141         operator LDKCResult_NoneAPIErrorZ() && { LDKCResult_NoneAPIErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NoneAPIErrorZ)); return res; }
3142         ~CResult_NoneAPIErrorZ() { CResult_NoneAPIErrorZ_free(self); }
3143         CResult_NoneAPIErrorZ& operator=(CResult_NoneAPIErrorZ&& o) { CResult_NoneAPIErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NoneAPIErrorZ)); return *this; }
3144         LDKCResult_NoneAPIErrorZ* operator &() { return &self; }
3145         LDKCResult_NoneAPIErrorZ* operator ->() { return &self; }
3146         const LDKCResult_NoneAPIErrorZ* operator &() const { return &self; }
3147         const LDKCResult_NoneAPIErrorZ* operator ->() const { return &self; }
3148 };
3149 class CVec_NetAddressZ {
3150 private:
3151         LDKCVec_NetAddressZ self;
3152 public:
3153         CVec_NetAddressZ(const CVec_NetAddressZ&) = delete;
3154         CVec_NetAddressZ(CVec_NetAddressZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_NetAddressZ)); }
3155         CVec_NetAddressZ(LDKCVec_NetAddressZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_NetAddressZ)); }
3156         operator LDKCVec_NetAddressZ() && { LDKCVec_NetAddressZ res = self; memset(&self, 0, sizeof(LDKCVec_NetAddressZ)); return res; }
3157         ~CVec_NetAddressZ() { CVec_NetAddressZ_free(self); }
3158         CVec_NetAddressZ& operator=(CVec_NetAddressZ&& o) { CVec_NetAddressZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_NetAddressZ)); return *this; }
3159         LDKCVec_NetAddressZ* operator &() { return &self; }
3160         LDKCVec_NetAddressZ* operator ->() { return &self; }
3161         const LDKCVec_NetAddressZ* operator &() const { return &self; }
3162         const LDKCVec_NetAddressZ* operator ->() const { return &self; }
3163 };
3164 class CVec_PublicKeyZ {
3165 private:
3166         LDKCVec_PublicKeyZ self;
3167 public:
3168         CVec_PublicKeyZ(const CVec_PublicKeyZ&) = delete;
3169         CVec_PublicKeyZ(CVec_PublicKeyZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_PublicKeyZ)); }
3170         CVec_PublicKeyZ(LDKCVec_PublicKeyZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_PublicKeyZ)); }
3171         operator LDKCVec_PublicKeyZ() && { LDKCVec_PublicKeyZ res = self; memset(&self, 0, sizeof(LDKCVec_PublicKeyZ)); return res; }
3172         ~CVec_PublicKeyZ() { CVec_PublicKeyZ_free(self); }
3173         CVec_PublicKeyZ& operator=(CVec_PublicKeyZ&& o) { CVec_PublicKeyZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_PublicKeyZ)); return *this; }
3174         LDKCVec_PublicKeyZ* operator &() { return &self; }
3175         LDKCVec_PublicKeyZ* operator ->() { return &self; }
3176         const LDKCVec_PublicKeyZ* operator &() const { return &self; }
3177         const LDKCVec_PublicKeyZ* operator ->() const { return &self; }
3178 };
3179 class CVec_C2Tuple_usizeTransactionZZ {
3180 private:
3181         LDKCVec_C2Tuple_usizeTransactionZZ self;
3182 public:
3183         CVec_C2Tuple_usizeTransactionZZ(const CVec_C2Tuple_usizeTransactionZZ&) = delete;
3184         CVec_C2Tuple_usizeTransactionZZ(CVec_C2Tuple_usizeTransactionZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_C2Tuple_usizeTransactionZZ)); }
3185         CVec_C2Tuple_usizeTransactionZZ(LDKCVec_C2Tuple_usizeTransactionZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_C2Tuple_usizeTransactionZZ)); }
3186         operator LDKCVec_C2Tuple_usizeTransactionZZ() && { LDKCVec_C2Tuple_usizeTransactionZZ res = self; memset(&self, 0, sizeof(LDKCVec_C2Tuple_usizeTransactionZZ)); return res; }
3187         ~CVec_C2Tuple_usizeTransactionZZ() { CVec_C2Tuple_usizeTransactionZZ_free(self); }
3188         CVec_C2Tuple_usizeTransactionZZ& operator=(CVec_C2Tuple_usizeTransactionZZ&& o) { CVec_C2Tuple_usizeTransactionZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_C2Tuple_usizeTransactionZZ)); return *this; }
3189         LDKCVec_C2Tuple_usizeTransactionZZ* operator &() { return &self; }
3190         LDKCVec_C2Tuple_usizeTransactionZZ* operator ->() { return &self; }
3191         const LDKCVec_C2Tuple_usizeTransactionZZ* operator &() const { return &self; }
3192         const LDKCVec_C2Tuple_usizeTransactionZZ* operator ->() const { return &self; }
3193 };
3194 class CResult_DirectionalChannelInfoDecodeErrorZ {
3195 private:
3196         LDKCResult_DirectionalChannelInfoDecodeErrorZ self;
3197 public:
3198         CResult_DirectionalChannelInfoDecodeErrorZ(const CResult_DirectionalChannelInfoDecodeErrorZ&) = delete;
3199         CResult_DirectionalChannelInfoDecodeErrorZ(CResult_DirectionalChannelInfoDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_DirectionalChannelInfoDecodeErrorZ)); }
3200         CResult_DirectionalChannelInfoDecodeErrorZ(LDKCResult_DirectionalChannelInfoDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_DirectionalChannelInfoDecodeErrorZ)); }
3201         operator LDKCResult_DirectionalChannelInfoDecodeErrorZ() && { LDKCResult_DirectionalChannelInfoDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_DirectionalChannelInfoDecodeErrorZ)); return res; }
3202         ~CResult_DirectionalChannelInfoDecodeErrorZ() { CResult_DirectionalChannelInfoDecodeErrorZ_free(self); }
3203         CResult_DirectionalChannelInfoDecodeErrorZ& operator=(CResult_DirectionalChannelInfoDecodeErrorZ&& o) { CResult_DirectionalChannelInfoDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_DirectionalChannelInfoDecodeErrorZ)); return *this; }
3204         LDKCResult_DirectionalChannelInfoDecodeErrorZ* operator &() { return &self; }
3205         LDKCResult_DirectionalChannelInfoDecodeErrorZ* operator ->() { return &self; }
3206         const LDKCResult_DirectionalChannelInfoDecodeErrorZ* operator &() const { return &self; }
3207         const LDKCResult_DirectionalChannelInfoDecodeErrorZ* operator ->() const { return &self; }
3208 };
3209 class C2Tuple_u32TxOutZ {
3210 private:
3211         LDKC2Tuple_u32TxOutZ self;
3212 public:
3213         C2Tuple_u32TxOutZ(const C2Tuple_u32TxOutZ&) = delete;
3214         C2Tuple_u32TxOutZ(C2Tuple_u32TxOutZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_u32TxOutZ)); }
3215         C2Tuple_u32TxOutZ(LDKC2Tuple_u32TxOutZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_u32TxOutZ)); }
3216         operator LDKC2Tuple_u32TxOutZ() && { LDKC2Tuple_u32TxOutZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_u32TxOutZ)); return res; }
3217         ~C2Tuple_u32TxOutZ() { C2Tuple_u32TxOutZ_free(self); }
3218         C2Tuple_u32TxOutZ& operator=(C2Tuple_u32TxOutZ&& o) { C2Tuple_u32TxOutZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_u32TxOutZ)); return *this; }
3219         LDKC2Tuple_u32TxOutZ* operator &() { return &self; }
3220         LDKC2Tuple_u32TxOutZ* operator ->() { return &self; }
3221         const LDKC2Tuple_u32TxOutZ* operator &() const { return &self; }
3222         const LDKC2Tuple_u32TxOutZ* operator ->() const { return &self; }
3223 };
3224 class CResult_UpdateFailHTLCDecodeErrorZ {
3225 private:
3226         LDKCResult_UpdateFailHTLCDecodeErrorZ self;
3227 public:
3228         CResult_UpdateFailHTLCDecodeErrorZ(const CResult_UpdateFailHTLCDecodeErrorZ&) = delete;
3229         CResult_UpdateFailHTLCDecodeErrorZ(CResult_UpdateFailHTLCDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UpdateFailHTLCDecodeErrorZ)); }
3230         CResult_UpdateFailHTLCDecodeErrorZ(LDKCResult_UpdateFailHTLCDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UpdateFailHTLCDecodeErrorZ)); }
3231         operator LDKCResult_UpdateFailHTLCDecodeErrorZ() && { LDKCResult_UpdateFailHTLCDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UpdateFailHTLCDecodeErrorZ)); return res; }
3232         ~CResult_UpdateFailHTLCDecodeErrorZ() { CResult_UpdateFailHTLCDecodeErrorZ_free(self); }
3233         CResult_UpdateFailHTLCDecodeErrorZ& operator=(CResult_UpdateFailHTLCDecodeErrorZ&& o) { CResult_UpdateFailHTLCDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UpdateFailHTLCDecodeErrorZ)); return *this; }
3234         LDKCResult_UpdateFailHTLCDecodeErrorZ* operator &() { return &self; }
3235         LDKCResult_UpdateFailHTLCDecodeErrorZ* operator ->() { return &self; }
3236         const LDKCResult_UpdateFailHTLCDecodeErrorZ* operator &() const { return &self; }
3237         const LDKCResult_UpdateFailHTLCDecodeErrorZ* operator ->() const { return &self; }
3238 };
3239 class CResult_ChannelConfigDecodeErrorZ {
3240 private:
3241         LDKCResult_ChannelConfigDecodeErrorZ self;
3242 public:
3243         CResult_ChannelConfigDecodeErrorZ(const CResult_ChannelConfigDecodeErrorZ&) = delete;
3244         CResult_ChannelConfigDecodeErrorZ(CResult_ChannelConfigDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelConfigDecodeErrorZ)); }
3245         CResult_ChannelConfigDecodeErrorZ(LDKCResult_ChannelConfigDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelConfigDecodeErrorZ)); }
3246         operator LDKCResult_ChannelConfigDecodeErrorZ() && { LDKCResult_ChannelConfigDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelConfigDecodeErrorZ)); return res; }
3247         ~CResult_ChannelConfigDecodeErrorZ() { CResult_ChannelConfigDecodeErrorZ_free(self); }
3248         CResult_ChannelConfigDecodeErrorZ& operator=(CResult_ChannelConfigDecodeErrorZ&& o) { CResult_ChannelConfigDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelConfigDecodeErrorZ)); return *this; }
3249         LDKCResult_ChannelConfigDecodeErrorZ* operator &() { return &self; }
3250         LDKCResult_ChannelConfigDecodeErrorZ* operator ->() { return &self; }
3251         const LDKCResult_ChannelConfigDecodeErrorZ* operator &() const { return &self; }
3252         const LDKCResult_ChannelConfigDecodeErrorZ* operator ->() const { return &self; }
3253 };
3254 class CResult_RevokeAndACKDecodeErrorZ {
3255 private:
3256         LDKCResult_RevokeAndACKDecodeErrorZ self;
3257 public:
3258         CResult_RevokeAndACKDecodeErrorZ(const CResult_RevokeAndACKDecodeErrorZ&) = delete;
3259         CResult_RevokeAndACKDecodeErrorZ(CResult_RevokeAndACKDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_RevokeAndACKDecodeErrorZ)); }
3260         CResult_RevokeAndACKDecodeErrorZ(LDKCResult_RevokeAndACKDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_RevokeAndACKDecodeErrorZ)); }
3261         operator LDKCResult_RevokeAndACKDecodeErrorZ() && { LDKCResult_RevokeAndACKDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_RevokeAndACKDecodeErrorZ)); return res; }
3262         ~CResult_RevokeAndACKDecodeErrorZ() { CResult_RevokeAndACKDecodeErrorZ_free(self); }
3263         CResult_RevokeAndACKDecodeErrorZ& operator=(CResult_RevokeAndACKDecodeErrorZ&& o) { CResult_RevokeAndACKDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_RevokeAndACKDecodeErrorZ)); return *this; }
3264         LDKCResult_RevokeAndACKDecodeErrorZ* operator &() { return &self; }
3265         LDKCResult_RevokeAndACKDecodeErrorZ* operator ->() { return &self; }
3266         const LDKCResult_RevokeAndACKDecodeErrorZ* operator &() const { return &self; }
3267         const LDKCResult_RevokeAndACKDecodeErrorZ* operator ->() const { return &self; }
3268 };
3269 class CResult_SpendableOutputDescriptorDecodeErrorZ {
3270 private:
3271         LDKCResult_SpendableOutputDescriptorDecodeErrorZ self;
3272 public:
3273         CResult_SpendableOutputDescriptorDecodeErrorZ(const CResult_SpendableOutputDescriptorDecodeErrorZ&) = delete;
3274         CResult_SpendableOutputDescriptorDecodeErrorZ(CResult_SpendableOutputDescriptorDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_SpendableOutputDescriptorDecodeErrorZ)); }
3275         CResult_SpendableOutputDescriptorDecodeErrorZ(LDKCResult_SpendableOutputDescriptorDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_SpendableOutputDescriptorDecodeErrorZ)); }
3276         operator LDKCResult_SpendableOutputDescriptorDecodeErrorZ() && { LDKCResult_SpendableOutputDescriptorDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_SpendableOutputDescriptorDecodeErrorZ)); return res; }
3277         ~CResult_SpendableOutputDescriptorDecodeErrorZ() { CResult_SpendableOutputDescriptorDecodeErrorZ_free(self); }
3278         CResult_SpendableOutputDescriptorDecodeErrorZ& operator=(CResult_SpendableOutputDescriptorDecodeErrorZ&& o) { CResult_SpendableOutputDescriptorDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_SpendableOutputDescriptorDecodeErrorZ)); return *this; }
3279         LDKCResult_SpendableOutputDescriptorDecodeErrorZ* operator &() { return &self; }
3280         LDKCResult_SpendableOutputDescriptorDecodeErrorZ* operator ->() { return &self; }
3281         const LDKCResult_SpendableOutputDescriptorDecodeErrorZ* operator &() const { return &self; }
3282         const LDKCResult_SpendableOutputDescriptorDecodeErrorZ* operator ->() const { return &self; }
3283 };
3284 class CResult_UnsignedChannelUpdateDecodeErrorZ {
3285 private:
3286         LDKCResult_UnsignedChannelUpdateDecodeErrorZ self;
3287 public:
3288         CResult_UnsignedChannelUpdateDecodeErrorZ(const CResult_UnsignedChannelUpdateDecodeErrorZ&) = delete;
3289         CResult_UnsignedChannelUpdateDecodeErrorZ(CResult_UnsignedChannelUpdateDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UnsignedChannelUpdateDecodeErrorZ)); }
3290         CResult_UnsignedChannelUpdateDecodeErrorZ(LDKCResult_UnsignedChannelUpdateDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UnsignedChannelUpdateDecodeErrorZ)); }
3291         operator LDKCResult_UnsignedChannelUpdateDecodeErrorZ() && { LDKCResult_UnsignedChannelUpdateDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UnsignedChannelUpdateDecodeErrorZ)); return res; }
3292         ~CResult_UnsignedChannelUpdateDecodeErrorZ() { CResult_UnsignedChannelUpdateDecodeErrorZ_free(self); }
3293         CResult_UnsignedChannelUpdateDecodeErrorZ& operator=(CResult_UnsignedChannelUpdateDecodeErrorZ&& o) { CResult_UnsignedChannelUpdateDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UnsignedChannelUpdateDecodeErrorZ)); return *this; }
3294         LDKCResult_UnsignedChannelUpdateDecodeErrorZ* operator &() { return &self; }
3295         LDKCResult_UnsignedChannelUpdateDecodeErrorZ* operator ->() { return &self; }
3296         const LDKCResult_UnsignedChannelUpdateDecodeErrorZ* operator &() const { return &self; }
3297         const LDKCResult_UnsignedChannelUpdateDecodeErrorZ* operator ->() const { return &self; }
3298 };
3299 class CResult_ShutdownDecodeErrorZ {
3300 private:
3301         LDKCResult_ShutdownDecodeErrorZ self;
3302 public:
3303         CResult_ShutdownDecodeErrorZ(const CResult_ShutdownDecodeErrorZ&) = delete;
3304         CResult_ShutdownDecodeErrorZ(CResult_ShutdownDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ShutdownDecodeErrorZ)); }
3305         CResult_ShutdownDecodeErrorZ(LDKCResult_ShutdownDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ShutdownDecodeErrorZ)); }
3306         operator LDKCResult_ShutdownDecodeErrorZ() && { LDKCResult_ShutdownDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ShutdownDecodeErrorZ)); return res; }
3307         ~CResult_ShutdownDecodeErrorZ() { CResult_ShutdownDecodeErrorZ_free(self); }
3308         CResult_ShutdownDecodeErrorZ& operator=(CResult_ShutdownDecodeErrorZ&& o) { CResult_ShutdownDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ShutdownDecodeErrorZ)); return *this; }
3309         LDKCResult_ShutdownDecodeErrorZ* operator &() { return &self; }
3310         LDKCResult_ShutdownDecodeErrorZ* operator ->() { return &self; }
3311         const LDKCResult_ShutdownDecodeErrorZ* operator &() const { return &self; }
3312         const LDKCResult_ShutdownDecodeErrorZ* operator ->() const { return &self; }
3313 };
3314 class CVec_EventZ {
3315 private:
3316         LDKCVec_EventZ self;
3317 public:
3318         CVec_EventZ(const CVec_EventZ&) = delete;
3319         CVec_EventZ(CVec_EventZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_EventZ)); }
3320         CVec_EventZ(LDKCVec_EventZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_EventZ)); }
3321         operator LDKCVec_EventZ() && { LDKCVec_EventZ res = self; memset(&self, 0, sizeof(LDKCVec_EventZ)); return res; }
3322         ~CVec_EventZ() { CVec_EventZ_free(self); }
3323         CVec_EventZ& operator=(CVec_EventZ&& o) { CVec_EventZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_EventZ)); return *this; }
3324         LDKCVec_EventZ* operator &() { return &self; }
3325         LDKCVec_EventZ* operator ->() { return &self; }
3326         const LDKCVec_EventZ* operator &() const { return &self; }
3327         const LDKCVec_EventZ* operator ->() const { return &self; }
3328 };
3329 class CVec_C2Tuple_u32ScriptZZ {
3330 private:
3331         LDKCVec_C2Tuple_u32ScriptZZ self;
3332 public:
3333         CVec_C2Tuple_u32ScriptZZ(const CVec_C2Tuple_u32ScriptZZ&) = delete;
3334         CVec_C2Tuple_u32ScriptZZ(CVec_C2Tuple_u32ScriptZZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_C2Tuple_u32ScriptZZ)); }
3335         CVec_C2Tuple_u32ScriptZZ(LDKCVec_C2Tuple_u32ScriptZZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_C2Tuple_u32ScriptZZ)); }
3336         operator LDKCVec_C2Tuple_u32ScriptZZ() && { LDKCVec_C2Tuple_u32ScriptZZ res = self; memset(&self, 0, sizeof(LDKCVec_C2Tuple_u32ScriptZZ)); return res; }
3337         ~CVec_C2Tuple_u32ScriptZZ() { CVec_C2Tuple_u32ScriptZZ_free(self); }
3338         CVec_C2Tuple_u32ScriptZZ& operator=(CVec_C2Tuple_u32ScriptZZ&& o) { CVec_C2Tuple_u32ScriptZZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_C2Tuple_u32ScriptZZ)); return *this; }
3339         LDKCVec_C2Tuple_u32ScriptZZ* operator &() { return &self; }
3340         LDKCVec_C2Tuple_u32ScriptZZ* operator ->() { return &self; }
3341         const LDKCVec_C2Tuple_u32ScriptZZ* operator &() const { return &self; }
3342         const LDKCVec_C2Tuple_u32ScriptZZ* operator ->() const { return &self; }
3343 };
3344 class CVec_MonitorEventZ {
3345 private:
3346         LDKCVec_MonitorEventZ self;
3347 public:
3348         CVec_MonitorEventZ(const CVec_MonitorEventZ&) = delete;
3349         CVec_MonitorEventZ(CVec_MonitorEventZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_MonitorEventZ)); }
3350         CVec_MonitorEventZ(LDKCVec_MonitorEventZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_MonitorEventZ)); }
3351         operator LDKCVec_MonitorEventZ() && { LDKCVec_MonitorEventZ res = self; memset(&self, 0, sizeof(LDKCVec_MonitorEventZ)); return res; }
3352         ~CVec_MonitorEventZ() { CVec_MonitorEventZ_free(self); }
3353         CVec_MonitorEventZ& operator=(CVec_MonitorEventZ&& o) { CVec_MonitorEventZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_MonitorEventZ)); return *this; }
3354         LDKCVec_MonitorEventZ* operator &() { return &self; }
3355         LDKCVec_MonitorEventZ* operator ->() { return &self; }
3356         const LDKCVec_MonitorEventZ* operator &() const { return &self; }
3357         const LDKCVec_MonitorEventZ* operator ->() const { return &self; }
3358 };
3359 class CResult_NoneChannelMonitorUpdateErrZ {
3360 private:
3361         LDKCResult_NoneChannelMonitorUpdateErrZ self;
3362 public:
3363         CResult_NoneChannelMonitorUpdateErrZ(const CResult_NoneChannelMonitorUpdateErrZ&) = delete;
3364         CResult_NoneChannelMonitorUpdateErrZ(CResult_NoneChannelMonitorUpdateErrZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NoneChannelMonitorUpdateErrZ)); }
3365         CResult_NoneChannelMonitorUpdateErrZ(LDKCResult_NoneChannelMonitorUpdateErrZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NoneChannelMonitorUpdateErrZ)); }
3366         operator LDKCResult_NoneChannelMonitorUpdateErrZ() && { LDKCResult_NoneChannelMonitorUpdateErrZ res = self; memset(&self, 0, sizeof(LDKCResult_NoneChannelMonitorUpdateErrZ)); return res; }
3367         ~CResult_NoneChannelMonitorUpdateErrZ() { CResult_NoneChannelMonitorUpdateErrZ_free(self); }
3368         CResult_NoneChannelMonitorUpdateErrZ& operator=(CResult_NoneChannelMonitorUpdateErrZ&& o) { CResult_NoneChannelMonitorUpdateErrZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NoneChannelMonitorUpdateErrZ)); return *this; }
3369         LDKCResult_NoneChannelMonitorUpdateErrZ* operator &() { return &self; }
3370         LDKCResult_NoneChannelMonitorUpdateErrZ* operator ->() { return &self; }
3371         const LDKCResult_NoneChannelMonitorUpdateErrZ* operator &() const { return &self; }
3372         const LDKCResult_NoneChannelMonitorUpdateErrZ* operator ->() const { return &self; }
3373 };
3374 class CResult_PublicKeyErrorZ {
3375 private:
3376         LDKCResult_PublicKeyErrorZ self;
3377 public:
3378         CResult_PublicKeyErrorZ(const CResult_PublicKeyErrorZ&) = delete;
3379         CResult_PublicKeyErrorZ(CResult_PublicKeyErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_PublicKeyErrorZ)); }
3380         CResult_PublicKeyErrorZ(LDKCResult_PublicKeyErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_PublicKeyErrorZ)); }
3381         operator LDKCResult_PublicKeyErrorZ() && { LDKCResult_PublicKeyErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_PublicKeyErrorZ)); return res; }
3382         ~CResult_PublicKeyErrorZ() { CResult_PublicKeyErrorZ_free(self); }
3383         CResult_PublicKeyErrorZ& operator=(CResult_PublicKeyErrorZ&& o) { CResult_PublicKeyErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_PublicKeyErrorZ)); return *this; }
3384         LDKCResult_PublicKeyErrorZ* operator &() { return &self; }
3385         LDKCResult_PublicKeyErrorZ* operator ->() { return &self; }
3386         const LDKCResult_PublicKeyErrorZ* operator &() const { return &self; }
3387         const LDKCResult_PublicKeyErrorZ* operator ->() const { return &self; }
3388 };
3389 class C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ {
3390 private:
3391         LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ self;
3392 public:
3393         C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ(const C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ&) = delete;
3394         C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ(C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ&& o) : self(o.self) { memset(&o, 0, sizeof(C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ)); }
3395         C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ(LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ)); }
3396         operator LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ() && { LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ res = self; memset(&self, 0, sizeof(LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ)); return res; }
3397         ~C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ() { C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_free(self); }
3398         C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ& operator=(C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ&& o) { C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_free(self); self = o.self; memset(&o, 0, sizeof(C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ)); return *this; }
3399         LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ* operator &() { return &self; }
3400         LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ* operator ->() { return &self; }
3401         const LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ* operator &() const { return &self; }
3402         const LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ* operator ->() const { return &self; }
3403 };
3404 class CResult_boolPeerHandleErrorZ {
3405 private:
3406         LDKCResult_boolPeerHandleErrorZ self;
3407 public:
3408         CResult_boolPeerHandleErrorZ(const CResult_boolPeerHandleErrorZ&) = delete;
3409         CResult_boolPeerHandleErrorZ(CResult_boolPeerHandleErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_boolPeerHandleErrorZ)); }
3410         CResult_boolPeerHandleErrorZ(LDKCResult_boolPeerHandleErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_boolPeerHandleErrorZ)); }
3411         operator LDKCResult_boolPeerHandleErrorZ() && { LDKCResult_boolPeerHandleErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_boolPeerHandleErrorZ)); return res; }
3412         ~CResult_boolPeerHandleErrorZ() { CResult_boolPeerHandleErrorZ_free(self); }
3413         CResult_boolPeerHandleErrorZ& operator=(CResult_boolPeerHandleErrorZ&& o) { CResult_boolPeerHandleErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_boolPeerHandleErrorZ)); return *this; }
3414         LDKCResult_boolPeerHandleErrorZ* operator &() { return &self; }
3415         LDKCResult_boolPeerHandleErrorZ* operator ->() { return &self; }
3416         const LDKCResult_boolPeerHandleErrorZ* operator &() const { return &self; }
3417         const LDKCResult_boolPeerHandleErrorZ* operator ->() const { return &self; }
3418 };
3419 class CResult_ChannelUpdateDecodeErrorZ {
3420 private:
3421         LDKCResult_ChannelUpdateDecodeErrorZ self;
3422 public:
3423         CResult_ChannelUpdateDecodeErrorZ(const CResult_ChannelUpdateDecodeErrorZ&) = delete;
3424         CResult_ChannelUpdateDecodeErrorZ(CResult_ChannelUpdateDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ChannelUpdateDecodeErrorZ)); }
3425         CResult_ChannelUpdateDecodeErrorZ(LDKCResult_ChannelUpdateDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ChannelUpdateDecodeErrorZ)); }
3426         operator LDKCResult_ChannelUpdateDecodeErrorZ() && { LDKCResult_ChannelUpdateDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ChannelUpdateDecodeErrorZ)); return res; }
3427         ~CResult_ChannelUpdateDecodeErrorZ() { CResult_ChannelUpdateDecodeErrorZ_free(self); }
3428         CResult_ChannelUpdateDecodeErrorZ& operator=(CResult_ChannelUpdateDecodeErrorZ&& o) { CResult_ChannelUpdateDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ChannelUpdateDecodeErrorZ)); return *this; }
3429         LDKCResult_ChannelUpdateDecodeErrorZ* operator &() { return &self; }
3430         LDKCResult_ChannelUpdateDecodeErrorZ* operator ->() { return &self; }
3431         const LDKCResult_ChannelUpdateDecodeErrorZ* operator &() const { return &self; }
3432         const LDKCResult_ChannelUpdateDecodeErrorZ* operator ->() const { return &self; }
3433 };
3434 class CVec_APIErrorZ {
3435 private:
3436         LDKCVec_APIErrorZ self;
3437 public:
3438         CVec_APIErrorZ(const CVec_APIErrorZ&) = delete;
3439         CVec_APIErrorZ(CVec_APIErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_APIErrorZ)); }
3440         CVec_APIErrorZ(LDKCVec_APIErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_APIErrorZ)); }
3441         operator LDKCVec_APIErrorZ() && { LDKCVec_APIErrorZ res = self; memset(&self, 0, sizeof(LDKCVec_APIErrorZ)); return res; }
3442         ~CVec_APIErrorZ() { CVec_APIErrorZ_free(self); }
3443         CVec_APIErrorZ& operator=(CVec_APIErrorZ&& o) { CVec_APIErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_APIErrorZ)); return *this; }
3444         LDKCVec_APIErrorZ* operator &() { return &self; }
3445         LDKCVec_APIErrorZ* operator ->() { return &self; }
3446         const LDKCVec_APIErrorZ* operator &() const { return &self; }
3447         const LDKCVec_APIErrorZ* operator ->() const { return &self; }
3448 };
3449 class CVec_UpdateFulfillHTLCZ {
3450 private:
3451         LDKCVec_UpdateFulfillHTLCZ self;
3452 public:
3453         CVec_UpdateFulfillHTLCZ(const CVec_UpdateFulfillHTLCZ&) = delete;
3454         CVec_UpdateFulfillHTLCZ(CVec_UpdateFulfillHTLCZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_UpdateFulfillHTLCZ)); }
3455         CVec_UpdateFulfillHTLCZ(LDKCVec_UpdateFulfillHTLCZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_UpdateFulfillHTLCZ)); }
3456         operator LDKCVec_UpdateFulfillHTLCZ() && { LDKCVec_UpdateFulfillHTLCZ res = self; memset(&self, 0, sizeof(LDKCVec_UpdateFulfillHTLCZ)); return res; }
3457         ~CVec_UpdateFulfillHTLCZ() { CVec_UpdateFulfillHTLCZ_free(self); }
3458         CVec_UpdateFulfillHTLCZ& operator=(CVec_UpdateFulfillHTLCZ&& o) { CVec_UpdateFulfillHTLCZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_UpdateFulfillHTLCZ)); return *this; }
3459         LDKCVec_UpdateFulfillHTLCZ* operator &() { return &self; }
3460         LDKCVec_UpdateFulfillHTLCZ* operator ->() { return &self; }
3461         const LDKCVec_UpdateFulfillHTLCZ* operator &() const { return &self; }
3462         const LDKCVec_UpdateFulfillHTLCZ* operator ->() const { return &self; }
3463 };
3464 class CResult_AnnouncementSignaturesDecodeErrorZ {
3465 private:
3466         LDKCResult_AnnouncementSignaturesDecodeErrorZ self;
3467 public:
3468         CResult_AnnouncementSignaturesDecodeErrorZ(const CResult_AnnouncementSignaturesDecodeErrorZ&) = delete;
3469         CResult_AnnouncementSignaturesDecodeErrorZ(CResult_AnnouncementSignaturesDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_AnnouncementSignaturesDecodeErrorZ)); }
3470         CResult_AnnouncementSignaturesDecodeErrorZ(LDKCResult_AnnouncementSignaturesDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_AnnouncementSignaturesDecodeErrorZ)); }
3471         operator LDKCResult_AnnouncementSignaturesDecodeErrorZ() && { LDKCResult_AnnouncementSignaturesDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_AnnouncementSignaturesDecodeErrorZ)); return res; }
3472         ~CResult_AnnouncementSignaturesDecodeErrorZ() { CResult_AnnouncementSignaturesDecodeErrorZ_free(self); }
3473         CResult_AnnouncementSignaturesDecodeErrorZ& operator=(CResult_AnnouncementSignaturesDecodeErrorZ&& o) { CResult_AnnouncementSignaturesDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_AnnouncementSignaturesDecodeErrorZ)); return *this; }
3474         LDKCResult_AnnouncementSignaturesDecodeErrorZ* operator &() { return &self; }
3475         LDKCResult_AnnouncementSignaturesDecodeErrorZ* operator ->() { return &self; }
3476         const LDKCResult_AnnouncementSignaturesDecodeErrorZ* operator &() const { return &self; }
3477         const LDKCResult_AnnouncementSignaturesDecodeErrorZ* operator ->() const { return &self; }
3478 };
3479 class CResult_UpdateFulfillHTLCDecodeErrorZ {
3480 private:
3481         LDKCResult_UpdateFulfillHTLCDecodeErrorZ self;
3482 public:
3483         CResult_UpdateFulfillHTLCDecodeErrorZ(const CResult_UpdateFulfillHTLCDecodeErrorZ&) = delete;
3484         CResult_UpdateFulfillHTLCDecodeErrorZ(CResult_UpdateFulfillHTLCDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_UpdateFulfillHTLCDecodeErrorZ)); }
3485         CResult_UpdateFulfillHTLCDecodeErrorZ(LDKCResult_UpdateFulfillHTLCDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_UpdateFulfillHTLCDecodeErrorZ)); }
3486         operator LDKCResult_UpdateFulfillHTLCDecodeErrorZ() && { LDKCResult_UpdateFulfillHTLCDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_UpdateFulfillHTLCDecodeErrorZ)); return res; }
3487         ~CResult_UpdateFulfillHTLCDecodeErrorZ() { CResult_UpdateFulfillHTLCDecodeErrorZ_free(self); }
3488         CResult_UpdateFulfillHTLCDecodeErrorZ& operator=(CResult_UpdateFulfillHTLCDecodeErrorZ&& o) { CResult_UpdateFulfillHTLCDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_UpdateFulfillHTLCDecodeErrorZ)); return *this; }
3489         LDKCResult_UpdateFulfillHTLCDecodeErrorZ* operator &() { return &self; }
3490         LDKCResult_UpdateFulfillHTLCDecodeErrorZ* operator ->() { return &self; }
3491         const LDKCResult_UpdateFulfillHTLCDecodeErrorZ* operator &() const { return &self; }
3492         const LDKCResult_UpdateFulfillHTLCDecodeErrorZ* operator ->() const { return &self; }
3493 };
3494 class CResult_NodeFeaturesDecodeErrorZ {
3495 private:
3496         LDKCResult_NodeFeaturesDecodeErrorZ self;
3497 public:
3498         CResult_NodeFeaturesDecodeErrorZ(const CResult_NodeFeaturesDecodeErrorZ&) = delete;
3499         CResult_NodeFeaturesDecodeErrorZ(CResult_NodeFeaturesDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_NodeFeaturesDecodeErrorZ)); }
3500         CResult_NodeFeaturesDecodeErrorZ(LDKCResult_NodeFeaturesDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_NodeFeaturesDecodeErrorZ)); }
3501         operator LDKCResult_NodeFeaturesDecodeErrorZ() && { LDKCResult_NodeFeaturesDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_NodeFeaturesDecodeErrorZ)); return res; }
3502         ~CResult_NodeFeaturesDecodeErrorZ() { CResult_NodeFeaturesDecodeErrorZ_free(self); }
3503         CResult_NodeFeaturesDecodeErrorZ& operator=(CResult_NodeFeaturesDecodeErrorZ&& o) { CResult_NodeFeaturesDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_NodeFeaturesDecodeErrorZ)); return *this; }
3504         LDKCResult_NodeFeaturesDecodeErrorZ* operator &() { return &self; }
3505         LDKCResult_NodeFeaturesDecodeErrorZ* operator ->() { return &self; }
3506         const LDKCResult_NodeFeaturesDecodeErrorZ* operator &() const { return &self; }
3507         const LDKCResult_NodeFeaturesDecodeErrorZ* operator ->() const { return &self; }
3508 };
3509 class CResult_ReplyShortChannelIdsEndDecodeErrorZ {
3510 private:
3511         LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ self;
3512 public:
3513         CResult_ReplyShortChannelIdsEndDecodeErrorZ(const CResult_ReplyShortChannelIdsEndDecodeErrorZ&) = delete;
3514         CResult_ReplyShortChannelIdsEndDecodeErrorZ(CResult_ReplyShortChannelIdsEndDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_ReplyShortChannelIdsEndDecodeErrorZ)); }
3515         CResult_ReplyShortChannelIdsEndDecodeErrorZ(LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ)); }
3516         operator LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ() && { LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ)); return res; }
3517         ~CResult_ReplyShortChannelIdsEndDecodeErrorZ() { CResult_ReplyShortChannelIdsEndDecodeErrorZ_free(self); }
3518         CResult_ReplyShortChannelIdsEndDecodeErrorZ& operator=(CResult_ReplyShortChannelIdsEndDecodeErrorZ&& o) { CResult_ReplyShortChannelIdsEndDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_ReplyShortChannelIdsEndDecodeErrorZ)); return *this; }
3519         LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ* operator &() { return &self; }
3520         LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ* operator ->() { return &self; }
3521         const LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ* operator &() const { return &self; }
3522         const LDKCResult_ReplyShortChannelIdsEndDecodeErrorZ* operator ->() const { return &self; }
3523 };
3524 class CResult_InMemorySignerDecodeErrorZ {
3525 private:
3526         LDKCResult_InMemorySignerDecodeErrorZ self;
3527 public:
3528         CResult_InMemorySignerDecodeErrorZ(const CResult_InMemorySignerDecodeErrorZ&) = delete;
3529         CResult_InMemorySignerDecodeErrorZ(CResult_InMemorySignerDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_InMemorySignerDecodeErrorZ)); }
3530         CResult_InMemorySignerDecodeErrorZ(LDKCResult_InMemorySignerDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_InMemorySignerDecodeErrorZ)); }
3531         operator LDKCResult_InMemorySignerDecodeErrorZ() && { LDKCResult_InMemorySignerDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_InMemorySignerDecodeErrorZ)); return res; }
3532         ~CResult_InMemorySignerDecodeErrorZ() { CResult_InMemorySignerDecodeErrorZ_free(self); }
3533         CResult_InMemorySignerDecodeErrorZ& operator=(CResult_InMemorySignerDecodeErrorZ&& o) { CResult_InMemorySignerDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_InMemorySignerDecodeErrorZ)); return *this; }
3534         LDKCResult_InMemorySignerDecodeErrorZ* operator &() { return &self; }
3535         LDKCResult_InMemorySignerDecodeErrorZ* operator ->() { return &self; }
3536         const LDKCResult_InMemorySignerDecodeErrorZ* operator &() const { return &self; }
3537         const LDKCResult_InMemorySignerDecodeErrorZ* operator ->() const { return &self; }
3538 };
3539 class C2Tuple_u32ScriptZ {
3540 private:
3541         LDKC2Tuple_u32ScriptZ self;
3542 public:
3543         C2Tuple_u32ScriptZ(const C2Tuple_u32ScriptZ&) = delete;
3544         C2Tuple_u32ScriptZ(C2Tuple_u32ScriptZ&& o) : self(o.self) { memset(&o, 0, sizeof(C2Tuple_u32ScriptZ)); }
3545         C2Tuple_u32ScriptZ(LDKC2Tuple_u32ScriptZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKC2Tuple_u32ScriptZ)); }
3546         operator LDKC2Tuple_u32ScriptZ() && { LDKC2Tuple_u32ScriptZ res = self; memset(&self, 0, sizeof(LDKC2Tuple_u32ScriptZ)); return res; }
3547         ~C2Tuple_u32ScriptZ() { C2Tuple_u32ScriptZ_free(self); }
3548         C2Tuple_u32ScriptZ& operator=(C2Tuple_u32ScriptZ&& o) { C2Tuple_u32ScriptZ_free(self); self = o.self; memset(&o, 0, sizeof(C2Tuple_u32ScriptZ)); return *this; }
3549         LDKC2Tuple_u32ScriptZ* operator &() { return &self; }
3550         LDKC2Tuple_u32ScriptZ* operator ->() { return &self; }
3551         const LDKC2Tuple_u32ScriptZ* operator &() const { return &self; }
3552         const LDKC2Tuple_u32ScriptZ* operator ->() const { return &self; }
3553 };
3554 class CResult_CResult_NetAddressu8ZDecodeErrorZ {
3555 private:
3556         LDKCResult_CResult_NetAddressu8ZDecodeErrorZ self;
3557 public:
3558         CResult_CResult_NetAddressu8ZDecodeErrorZ(const CResult_CResult_NetAddressu8ZDecodeErrorZ&) = delete;
3559         CResult_CResult_NetAddressu8ZDecodeErrorZ(CResult_CResult_NetAddressu8ZDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_CResult_NetAddressu8ZDecodeErrorZ)); }
3560         CResult_CResult_NetAddressu8ZDecodeErrorZ(LDKCResult_CResult_NetAddressu8ZDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_CResult_NetAddressu8ZDecodeErrorZ)); }
3561         operator LDKCResult_CResult_NetAddressu8ZDecodeErrorZ() && { LDKCResult_CResult_NetAddressu8ZDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_CResult_NetAddressu8ZDecodeErrorZ)); return res; }
3562         ~CResult_CResult_NetAddressu8ZDecodeErrorZ() { CResult_CResult_NetAddressu8ZDecodeErrorZ_free(self); }
3563         CResult_CResult_NetAddressu8ZDecodeErrorZ& operator=(CResult_CResult_NetAddressu8ZDecodeErrorZ&& o) { CResult_CResult_NetAddressu8ZDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_CResult_NetAddressu8ZDecodeErrorZ)); return *this; }
3564         LDKCResult_CResult_NetAddressu8ZDecodeErrorZ* operator &() { return &self; }
3565         LDKCResult_CResult_NetAddressu8ZDecodeErrorZ* operator ->() { return &self; }
3566         const LDKCResult_CResult_NetAddressu8ZDecodeErrorZ* operator &() const { return &self; }
3567         const LDKCResult_CResult_NetAddressu8ZDecodeErrorZ* operator ->() const { return &self; }
3568 };
3569 class CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ {
3570 private:
3571         LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ self;
3572 public:
3573         CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ(const CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ&) = delete;
3574         CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ(CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ)); }
3575         CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ(LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ)); }
3576         operator LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ() && { LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ)); return res; }
3577         ~CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ() { CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_free(self); }
3578         CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ& operator=(CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ&& o) { CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ)); return *this; }
3579         LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* operator &() { return &self; }
3580         LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* operator ->() { return &self; }
3581         const LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* operator &() const { return &self; }
3582         const LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* operator ->() const { return &self; }
3583 };
3584 class CResult_BuiltCommitmentTransactionDecodeErrorZ {
3585 private:
3586         LDKCResult_BuiltCommitmentTransactionDecodeErrorZ self;
3587 public:
3588         CResult_BuiltCommitmentTransactionDecodeErrorZ(const CResult_BuiltCommitmentTransactionDecodeErrorZ&) = delete;
3589         CResult_BuiltCommitmentTransactionDecodeErrorZ(CResult_BuiltCommitmentTransactionDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_BuiltCommitmentTransactionDecodeErrorZ)); }
3590         CResult_BuiltCommitmentTransactionDecodeErrorZ(LDKCResult_BuiltCommitmentTransactionDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_BuiltCommitmentTransactionDecodeErrorZ)); }
3591         operator LDKCResult_BuiltCommitmentTransactionDecodeErrorZ() && { LDKCResult_BuiltCommitmentTransactionDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_BuiltCommitmentTransactionDecodeErrorZ)); return res; }
3592         ~CResult_BuiltCommitmentTransactionDecodeErrorZ() { CResult_BuiltCommitmentTransactionDecodeErrorZ_free(self); }
3593         CResult_BuiltCommitmentTransactionDecodeErrorZ& operator=(CResult_BuiltCommitmentTransactionDecodeErrorZ&& o) { CResult_BuiltCommitmentTransactionDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_BuiltCommitmentTransactionDecodeErrorZ)); return *this; }
3594         LDKCResult_BuiltCommitmentTransactionDecodeErrorZ* operator &() { return &self; }
3595         LDKCResult_BuiltCommitmentTransactionDecodeErrorZ* operator ->() { return &self; }
3596         const LDKCResult_BuiltCommitmentTransactionDecodeErrorZ* operator &() const { return &self; }
3597         const LDKCResult_BuiltCommitmentTransactionDecodeErrorZ* operator ->() const { return &self; }
3598 };
3599 class CResult_RouteDecodeErrorZ {
3600 private:
3601         LDKCResult_RouteDecodeErrorZ self;
3602 public:
3603         CResult_RouteDecodeErrorZ(const CResult_RouteDecodeErrorZ&) = delete;
3604         CResult_RouteDecodeErrorZ(CResult_RouteDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_RouteDecodeErrorZ)); }
3605         CResult_RouteDecodeErrorZ(LDKCResult_RouteDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_RouteDecodeErrorZ)); }
3606         operator LDKCResult_RouteDecodeErrorZ() && { LDKCResult_RouteDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_RouteDecodeErrorZ)); return res; }
3607         ~CResult_RouteDecodeErrorZ() { CResult_RouteDecodeErrorZ_free(self); }
3608         CResult_RouteDecodeErrorZ& operator=(CResult_RouteDecodeErrorZ&& o) { CResult_RouteDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_RouteDecodeErrorZ)); return *this; }
3609         LDKCResult_RouteDecodeErrorZ* operator &() { return &self; }
3610         LDKCResult_RouteDecodeErrorZ* operator ->() { return &self; }
3611         const LDKCResult_RouteDecodeErrorZ* operator &() const { return &self; }
3612         const LDKCResult_RouteDecodeErrorZ* operator ->() const { return &self; }
3613 };
3614 class CVec_UpdateFailHTLCZ {
3615 private:
3616         LDKCVec_UpdateFailHTLCZ self;
3617 public:
3618         CVec_UpdateFailHTLCZ(const CVec_UpdateFailHTLCZ&) = delete;
3619         CVec_UpdateFailHTLCZ(CVec_UpdateFailHTLCZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_UpdateFailHTLCZ)); }
3620         CVec_UpdateFailHTLCZ(LDKCVec_UpdateFailHTLCZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_UpdateFailHTLCZ)); }
3621         operator LDKCVec_UpdateFailHTLCZ() && { LDKCVec_UpdateFailHTLCZ res = self; memset(&self, 0, sizeof(LDKCVec_UpdateFailHTLCZ)); return res; }
3622         ~CVec_UpdateFailHTLCZ() { CVec_UpdateFailHTLCZ_free(self); }
3623         CVec_UpdateFailHTLCZ& operator=(CVec_UpdateFailHTLCZ&& o) { CVec_UpdateFailHTLCZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_UpdateFailHTLCZ)); return *this; }
3624         LDKCVec_UpdateFailHTLCZ* operator &() { return &self; }
3625         LDKCVec_UpdateFailHTLCZ* operator ->() { return &self; }
3626         const LDKCVec_UpdateFailHTLCZ* operator &() const { return &self; }
3627         const LDKCVec_UpdateFailHTLCZ* operator ->() const { return &self; }
3628 };
3629 class CResult_FundingLockedDecodeErrorZ {
3630 private:
3631         LDKCResult_FundingLockedDecodeErrorZ self;
3632 public:
3633         CResult_FundingLockedDecodeErrorZ(const CResult_FundingLockedDecodeErrorZ&) = delete;
3634         CResult_FundingLockedDecodeErrorZ(CResult_FundingLockedDecodeErrorZ&& o) : self(o.self) { memset(&o, 0, sizeof(CResult_FundingLockedDecodeErrorZ)); }
3635         CResult_FundingLockedDecodeErrorZ(LDKCResult_FundingLockedDecodeErrorZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCResult_FundingLockedDecodeErrorZ)); }
3636         operator LDKCResult_FundingLockedDecodeErrorZ() && { LDKCResult_FundingLockedDecodeErrorZ res = self; memset(&self, 0, sizeof(LDKCResult_FundingLockedDecodeErrorZ)); return res; }
3637         ~CResult_FundingLockedDecodeErrorZ() { CResult_FundingLockedDecodeErrorZ_free(self); }
3638         CResult_FundingLockedDecodeErrorZ& operator=(CResult_FundingLockedDecodeErrorZ&& o) { CResult_FundingLockedDecodeErrorZ_free(self); self = o.self; memset(&o, 0, sizeof(CResult_FundingLockedDecodeErrorZ)); return *this; }
3639         LDKCResult_FundingLockedDecodeErrorZ* operator &() { return &self; }
3640         LDKCResult_FundingLockedDecodeErrorZ* operator ->() { return &self; }
3641         const LDKCResult_FundingLockedDecodeErrorZ* operator &() const { return &self; }
3642         const LDKCResult_FundingLockedDecodeErrorZ* operator ->() const { return &self; }
3643 };
3644 class CVec_TxOutZ {
3645 private:
3646         LDKCVec_TxOutZ self;
3647 public:
3648         CVec_TxOutZ(const CVec_TxOutZ&) = delete;
3649         CVec_TxOutZ(CVec_TxOutZ&& o) : self(o.self) { memset(&o, 0, sizeof(CVec_TxOutZ)); }
3650         CVec_TxOutZ(LDKCVec_TxOutZ&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKCVec_TxOutZ)); }
3651         operator LDKCVec_TxOutZ() && { LDKCVec_TxOutZ res = self; memset(&self, 0, sizeof(LDKCVec_TxOutZ)); return res; }
3652         ~CVec_TxOutZ() { CVec_TxOutZ_free(self); }
3653         CVec_TxOutZ& operator=(CVec_TxOutZ&& o) { CVec_TxOutZ_free(self); self = o.self; memset(&o, 0, sizeof(CVec_TxOutZ)); return *this; }
3654         LDKCVec_TxOutZ* operator &() { return &self; }
3655         LDKCVec_TxOutZ* operator ->() { return &self; }
3656         const LDKCVec_TxOutZ* operator &() const { return &self; }
3657         const LDKCVec_TxOutZ* operator ->() const { return &self; }
3658 };
3659 }