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