9ec8bab0ef18a274d575420c032ac640d9d52f61
[ldk-java] / src / main / java / org / ldk / structs / InitFeatures.java
1 package org.ldk.structs;
2
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
5 import org.ldk.util.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
9
10
11 /**
12  * Features used within an `init` message.
13  */
14 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
15 public class InitFeatures extends CommonBase {
16         InitFeatures(Object _dummy, long ptr) { super(ptr); }
17         @Override @SuppressWarnings("deprecation")
18         protected void finalize() throws Throwable {
19                 super.finalize();
20                 if (ptr != 0) { bindings.InitFeatures_free(ptr); }
21         }
22
23         /**
24          * Checks if two InitFeaturess contain equal inner contents.
25          * This ignores pointers and is_owned flags and looks at the values in fields.
26          * Two objects with NULL inner values will be considered "equal" here.
27          */
28         public boolean eq(org.ldk.structs.InitFeatures b) {
29                 boolean ret = bindings.InitFeatures_eq(this.ptr, b == null ? 0 : b.ptr);
30                 Reference.reachabilityFence(this);
31                 Reference.reachabilityFence(b);
32                 if (this != null) { this.ptrs_to.add(b); };
33                 return ret;
34         }
35
36         @Override public boolean equals(Object o) {
37                 if (!(o instanceof InitFeatures)) return false;
38                 return this.eq((InitFeatures)o);
39         }
40         long clone_ptr() {
41                 long ret = bindings.InitFeatures_clone_ptr(this.ptr);
42                 Reference.reachabilityFence(this);
43                 return ret;
44         }
45
46         /**
47          * Creates a copy of the InitFeatures
48          */
49         public InitFeatures clone() {
50                 long ret = bindings.InitFeatures_clone(this.ptr);
51                 Reference.reachabilityFence(this);
52                 if (ret >= 0 && ret <= 4096) { return null; }
53                 org.ldk.structs.InitFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.InitFeatures(null, ret); }
54                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
55                 return ret_hu_conv;
56         }
57
58         /**
59          * Create a blank Features with no features set
60          */
61         public static InitFeatures empty() {
62                 long ret = bindings.InitFeatures_empty();
63                 if (ret >= 0 && ret <= 4096) { return null; }
64                 org.ldk.structs.InitFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.InitFeatures(null, ret); }
65                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
66                 return ret_hu_conv;
67         }
68
69         /**
70          * Returns true if this `Features` object contains required features unknown by `other`.
71          */
72         public boolean requires_unknown_bits_from(org.ldk.structs.InitFeatures other) {
73                 boolean ret = bindings.InitFeatures_requires_unknown_bits_from(this.ptr, other == null ? 0 : other.ptr);
74                 Reference.reachabilityFence(this);
75                 Reference.reachabilityFence(other);
76                 if (this != null) { this.ptrs_to.add(other); };
77                 return ret;
78         }
79
80         /**
81          * Returns true if this `Features` object contains unknown feature flags which are set as
82          * \"required\".
83          */
84         public boolean requires_unknown_bits() {
85                 boolean ret = bindings.InitFeatures_requires_unknown_bits(this.ptr);
86                 Reference.reachabilityFence(this);
87                 return ret;
88         }
89
90         /**
91          * Sets a required feature bit. Errors if `bit` is outside the feature range as defined
92          * by [BOLT 9].
93          * 
94          * Note: Required bits are even. If an odd bit is given, then the corresponding even bit will
95          * be set instead (i.e., `bit - 1`).
96          * 
97          * [BOLT 9]: https://github.com/lightning/bolts/blob/master/09-features.md
98          */
99         public Result_NoneNoneZ set_required_feature_bit(long bit) {
100                 long ret = bindings.InitFeatures_set_required_feature_bit(this.ptr, bit);
101                 Reference.reachabilityFence(this);
102                 Reference.reachabilityFence(bit);
103                 if (ret >= 0 && ret <= 4096) { return null; }
104                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
105                 return ret_hu_conv;
106         }
107
108         /**
109          * Sets an optional feature bit. Errors if `bit` is outside the feature range as defined
110          * by [BOLT 9].
111          * 
112          * Note: Optional bits are odd. If an even bit is given, then the corresponding odd bit will be
113          * set instead (i.e., `bit + 1`).
114          * 
115          * [BOLT 9]: https://github.com/lightning/bolts/blob/master/09-features.md
116          */
117         public Result_NoneNoneZ set_optional_feature_bit(long bit) {
118                 long ret = bindings.InitFeatures_set_optional_feature_bit(this.ptr, bit);
119                 Reference.reachabilityFence(this);
120                 Reference.reachabilityFence(bit);
121                 if (ret >= 0 && ret <= 4096) { return null; }
122                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
123                 return ret_hu_conv;
124         }
125
126         /**
127          * Sets a required custom feature bit. Errors if `bit` is outside the custom range as defined
128          * by [bLIP 2] or if it is a known `T` feature.
129          * 
130          * Note: Required bits are even. If an odd bit is given, then the corresponding even bit will
131          * be set instead (i.e., `bit - 1`).
132          * 
133          * [bLIP 2]: https://github.com/lightning/blips/blob/master/blip-0002.md#feature-bits
134          */
135         public Result_NoneNoneZ set_required_custom_bit(long bit) {
136                 long ret = bindings.InitFeatures_set_required_custom_bit(this.ptr, bit);
137                 Reference.reachabilityFence(this);
138                 Reference.reachabilityFence(bit);
139                 if (ret >= 0 && ret <= 4096) { return null; }
140                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
141                 return ret_hu_conv;
142         }
143
144         /**
145          * Sets an optional custom feature bit. Errors if `bit` is outside the custom range as defined
146          * by [bLIP 2] or if it is a known `T` feature.
147          * 
148          * Note: Optional bits are odd. If an even bit is given, then the corresponding odd bit will be
149          * set instead (i.e., `bit + 1`).
150          * 
151          * [bLIP 2]: https://github.com/lightning/blips/blob/master/blip-0002.md#feature-bits
152          */
153         public Result_NoneNoneZ set_optional_custom_bit(long bit) {
154                 long ret = bindings.InitFeatures_set_optional_custom_bit(this.ptr, bit);
155                 Reference.reachabilityFence(this);
156                 Reference.reachabilityFence(bit);
157                 if (ret >= 0 && ret <= 4096) { return null; }
158                 Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret);
159                 return ret_hu_conv;
160         }
161
162         /**
163          * Serialize the InitFeatures object into a byte array which can be read by InitFeatures_read
164          */
165         public byte[] write() {
166                 byte[] ret = bindings.InitFeatures_write(this.ptr);
167                 Reference.reachabilityFence(this);
168                 return ret;
169         }
170
171         /**
172          * Read a InitFeatures from a byte array, created by InitFeatures_write
173          */
174         public static Result_InitFeaturesDecodeErrorZ read(byte[] ser) {
175                 long ret = bindings.InitFeatures_read(ser);
176                 Reference.reachabilityFence(ser);
177                 if (ret >= 0 && ret <= 4096) { return null; }
178                 Result_InitFeaturesDecodeErrorZ ret_hu_conv = Result_InitFeaturesDecodeErrorZ.constr_from_ptr(ret);
179                 return ret_hu_conv;
180         }
181
182         /**
183          * Set this feature as optional.
184          */
185         public void set_data_loss_protect_optional() {
186                 bindings.InitFeatures_set_data_loss_protect_optional(this.ptr);
187                 Reference.reachabilityFence(this);
188         }
189
190         /**
191          * Set this feature as required.
192          */
193         public void set_data_loss_protect_required() {
194                 bindings.InitFeatures_set_data_loss_protect_required(this.ptr);
195                 Reference.reachabilityFence(this);
196         }
197
198         /**
199          * Checks if this feature is supported.
200          */
201         public boolean supports_data_loss_protect() {
202                 boolean ret = bindings.InitFeatures_supports_data_loss_protect(this.ptr);
203                 Reference.reachabilityFence(this);
204                 return ret;
205         }
206
207         /**
208          * Checks if this feature is required.
209          */
210         public boolean requires_data_loss_protect() {
211                 boolean ret = bindings.InitFeatures_requires_data_loss_protect(this.ptr);
212                 Reference.reachabilityFence(this);
213                 return ret;
214         }
215
216         /**
217          * Set this feature as optional.
218          */
219         public void set_initial_routing_sync_optional() {
220                 bindings.InitFeatures_set_initial_routing_sync_optional(this.ptr);
221                 Reference.reachabilityFence(this);
222         }
223
224         /**
225          * Set this feature as required.
226          */
227         public void set_initial_routing_sync_required() {
228                 bindings.InitFeatures_set_initial_routing_sync_required(this.ptr);
229                 Reference.reachabilityFence(this);
230         }
231
232         /**
233          * Checks if this feature is supported.
234          */
235         public boolean initial_routing_sync() {
236                 boolean ret = bindings.InitFeatures_initial_routing_sync(this.ptr);
237                 Reference.reachabilityFence(this);
238                 return ret;
239         }
240
241         /**
242          * Set this feature as optional.
243          */
244         public void set_upfront_shutdown_script_optional() {
245                 bindings.InitFeatures_set_upfront_shutdown_script_optional(this.ptr);
246                 Reference.reachabilityFence(this);
247         }
248
249         /**
250          * Set this feature as required.
251          */
252         public void set_upfront_shutdown_script_required() {
253                 bindings.InitFeatures_set_upfront_shutdown_script_required(this.ptr);
254                 Reference.reachabilityFence(this);
255         }
256
257         /**
258          * Checks if this feature is supported.
259          */
260         public boolean supports_upfront_shutdown_script() {
261                 boolean ret = bindings.InitFeatures_supports_upfront_shutdown_script(this.ptr);
262                 Reference.reachabilityFence(this);
263                 return ret;
264         }
265
266         /**
267          * Checks if this feature is required.
268          */
269         public boolean requires_upfront_shutdown_script() {
270                 boolean ret = bindings.InitFeatures_requires_upfront_shutdown_script(this.ptr);
271                 Reference.reachabilityFence(this);
272                 return ret;
273         }
274
275         /**
276          * Set this feature as optional.
277          */
278         public void set_gossip_queries_optional() {
279                 bindings.InitFeatures_set_gossip_queries_optional(this.ptr);
280                 Reference.reachabilityFence(this);
281         }
282
283         /**
284          * Set this feature as required.
285          */
286         public void set_gossip_queries_required() {
287                 bindings.InitFeatures_set_gossip_queries_required(this.ptr);
288                 Reference.reachabilityFence(this);
289         }
290
291         /**
292          * Checks if this feature is supported.
293          */
294         public boolean supports_gossip_queries() {
295                 boolean ret = bindings.InitFeatures_supports_gossip_queries(this.ptr);
296                 Reference.reachabilityFence(this);
297                 return ret;
298         }
299
300         /**
301          * Checks if this feature is required.
302          */
303         public boolean requires_gossip_queries() {
304                 boolean ret = bindings.InitFeatures_requires_gossip_queries(this.ptr);
305                 Reference.reachabilityFence(this);
306                 return ret;
307         }
308
309         /**
310          * Set this feature as optional.
311          */
312         public void set_variable_length_onion_optional() {
313                 bindings.InitFeatures_set_variable_length_onion_optional(this.ptr);
314                 Reference.reachabilityFence(this);
315         }
316
317         /**
318          * Set this feature as required.
319          */
320         public void set_variable_length_onion_required() {
321                 bindings.InitFeatures_set_variable_length_onion_required(this.ptr);
322                 Reference.reachabilityFence(this);
323         }
324
325         /**
326          * Checks if this feature is supported.
327          */
328         public boolean supports_variable_length_onion() {
329                 boolean ret = bindings.InitFeatures_supports_variable_length_onion(this.ptr);
330                 Reference.reachabilityFence(this);
331                 return ret;
332         }
333
334         /**
335          * Checks if this feature is required.
336          */
337         public boolean requires_variable_length_onion() {
338                 boolean ret = bindings.InitFeatures_requires_variable_length_onion(this.ptr);
339                 Reference.reachabilityFence(this);
340                 return ret;
341         }
342
343         /**
344          * Set this feature as optional.
345          */
346         public void set_static_remote_key_optional() {
347                 bindings.InitFeatures_set_static_remote_key_optional(this.ptr);
348                 Reference.reachabilityFence(this);
349         }
350
351         /**
352          * Set this feature as required.
353          */
354         public void set_static_remote_key_required() {
355                 bindings.InitFeatures_set_static_remote_key_required(this.ptr);
356                 Reference.reachabilityFence(this);
357         }
358
359         /**
360          * Checks if this feature is supported.
361          */
362         public boolean supports_static_remote_key() {
363                 boolean ret = bindings.InitFeatures_supports_static_remote_key(this.ptr);
364                 Reference.reachabilityFence(this);
365                 return ret;
366         }
367
368         /**
369          * Checks if this feature is required.
370          */
371         public boolean requires_static_remote_key() {
372                 boolean ret = bindings.InitFeatures_requires_static_remote_key(this.ptr);
373                 Reference.reachabilityFence(this);
374                 return ret;
375         }
376
377         /**
378          * Set this feature as optional.
379          */
380         public void set_payment_secret_optional() {
381                 bindings.InitFeatures_set_payment_secret_optional(this.ptr);
382                 Reference.reachabilityFence(this);
383         }
384
385         /**
386          * Set this feature as required.
387          */
388         public void set_payment_secret_required() {
389                 bindings.InitFeatures_set_payment_secret_required(this.ptr);
390                 Reference.reachabilityFence(this);
391         }
392
393         /**
394          * Checks if this feature is supported.
395          */
396         public boolean supports_payment_secret() {
397                 boolean ret = bindings.InitFeatures_supports_payment_secret(this.ptr);
398                 Reference.reachabilityFence(this);
399                 return ret;
400         }
401
402         /**
403          * Checks if this feature is required.
404          */
405         public boolean requires_payment_secret() {
406                 boolean ret = bindings.InitFeatures_requires_payment_secret(this.ptr);
407                 Reference.reachabilityFence(this);
408                 return ret;
409         }
410
411         /**
412          * Set this feature as optional.
413          */
414         public void set_basic_mpp_optional() {
415                 bindings.InitFeatures_set_basic_mpp_optional(this.ptr);
416                 Reference.reachabilityFence(this);
417         }
418
419         /**
420          * Set this feature as required.
421          */
422         public void set_basic_mpp_required() {
423                 bindings.InitFeatures_set_basic_mpp_required(this.ptr);
424                 Reference.reachabilityFence(this);
425         }
426
427         /**
428          * Checks if this feature is supported.
429          */
430         public boolean supports_basic_mpp() {
431                 boolean ret = bindings.InitFeatures_supports_basic_mpp(this.ptr);
432                 Reference.reachabilityFence(this);
433                 return ret;
434         }
435
436         /**
437          * Checks if this feature is required.
438          */
439         public boolean requires_basic_mpp() {
440                 boolean ret = bindings.InitFeatures_requires_basic_mpp(this.ptr);
441                 Reference.reachabilityFence(this);
442                 return ret;
443         }
444
445         /**
446          * Set this feature as optional.
447          */
448         public void set_wumbo_optional() {
449                 bindings.InitFeatures_set_wumbo_optional(this.ptr);
450                 Reference.reachabilityFence(this);
451         }
452
453         /**
454          * Set this feature as required.
455          */
456         public void set_wumbo_required() {
457                 bindings.InitFeatures_set_wumbo_required(this.ptr);
458                 Reference.reachabilityFence(this);
459         }
460
461         /**
462          * Checks if this feature is supported.
463          */
464         public boolean supports_wumbo() {
465                 boolean ret = bindings.InitFeatures_supports_wumbo(this.ptr);
466                 Reference.reachabilityFence(this);
467                 return ret;
468         }
469
470         /**
471          * Checks if this feature is required.
472          */
473         public boolean requires_wumbo() {
474                 boolean ret = bindings.InitFeatures_requires_wumbo(this.ptr);
475                 Reference.reachabilityFence(this);
476                 return ret;
477         }
478
479         /**
480          * Set this feature as optional.
481          */
482         public void set_anchors_nonzero_fee_htlc_tx_optional() {
483                 bindings.InitFeatures_set_anchors_nonzero_fee_htlc_tx_optional(this.ptr);
484                 Reference.reachabilityFence(this);
485         }
486
487         /**
488          * Set this feature as required.
489          */
490         public void set_anchors_nonzero_fee_htlc_tx_required() {
491                 bindings.InitFeatures_set_anchors_nonzero_fee_htlc_tx_required(this.ptr);
492                 Reference.reachabilityFence(this);
493         }
494
495         /**
496          * Checks if this feature is supported.
497          */
498         public boolean supports_anchors_nonzero_fee_htlc_tx() {
499                 boolean ret = bindings.InitFeatures_supports_anchors_nonzero_fee_htlc_tx(this.ptr);
500                 Reference.reachabilityFence(this);
501                 return ret;
502         }
503
504         /**
505          * Checks if this feature is required.
506          */
507         public boolean requires_anchors_nonzero_fee_htlc_tx() {
508                 boolean ret = bindings.InitFeatures_requires_anchors_nonzero_fee_htlc_tx(this.ptr);
509                 Reference.reachabilityFence(this);
510                 return ret;
511         }
512
513         /**
514          * Set this feature as optional.
515          */
516         public void set_anchors_zero_fee_htlc_tx_optional() {
517                 bindings.InitFeatures_set_anchors_zero_fee_htlc_tx_optional(this.ptr);
518                 Reference.reachabilityFence(this);
519         }
520
521         /**
522          * Set this feature as required.
523          */
524         public void set_anchors_zero_fee_htlc_tx_required() {
525                 bindings.InitFeatures_set_anchors_zero_fee_htlc_tx_required(this.ptr);
526                 Reference.reachabilityFence(this);
527         }
528
529         /**
530          * Checks if this feature is supported.
531          */
532         public boolean supports_anchors_zero_fee_htlc_tx() {
533                 boolean ret = bindings.InitFeatures_supports_anchors_zero_fee_htlc_tx(this.ptr);
534                 Reference.reachabilityFence(this);
535                 return ret;
536         }
537
538         /**
539          * Checks if this feature is required.
540          */
541         public boolean requires_anchors_zero_fee_htlc_tx() {
542                 boolean ret = bindings.InitFeatures_requires_anchors_zero_fee_htlc_tx(this.ptr);
543                 Reference.reachabilityFence(this);
544                 return ret;
545         }
546
547         /**
548          * Set this feature as optional.
549          */
550         public void set_shutdown_any_segwit_optional() {
551                 bindings.InitFeatures_set_shutdown_any_segwit_optional(this.ptr);
552                 Reference.reachabilityFence(this);
553         }
554
555         /**
556          * Set this feature as required.
557          */
558         public void set_shutdown_any_segwit_required() {
559                 bindings.InitFeatures_set_shutdown_any_segwit_required(this.ptr);
560                 Reference.reachabilityFence(this);
561         }
562
563         /**
564          * Checks if this feature is supported.
565          */
566         public boolean supports_shutdown_anysegwit() {
567                 boolean ret = bindings.InitFeatures_supports_shutdown_anysegwit(this.ptr);
568                 Reference.reachabilityFence(this);
569                 return ret;
570         }
571
572         /**
573          * Checks if this feature is required.
574          */
575         public boolean requires_shutdown_anysegwit() {
576                 boolean ret = bindings.InitFeatures_requires_shutdown_anysegwit(this.ptr);
577                 Reference.reachabilityFence(this);
578                 return ret;
579         }
580
581         /**
582          * Set this feature as optional.
583          */
584         public void set_taproot_optional() {
585                 bindings.InitFeatures_set_taproot_optional(this.ptr);
586                 Reference.reachabilityFence(this);
587         }
588
589         /**
590          * Set this feature as required.
591          */
592         public void set_taproot_required() {
593                 bindings.InitFeatures_set_taproot_required(this.ptr);
594                 Reference.reachabilityFence(this);
595         }
596
597         /**
598          * Checks if this feature is supported.
599          */
600         public boolean supports_taproot() {
601                 boolean ret = bindings.InitFeatures_supports_taproot(this.ptr);
602                 Reference.reachabilityFence(this);
603                 return ret;
604         }
605
606         /**
607          * Checks if this feature is required.
608          */
609         public boolean requires_taproot() {
610                 boolean ret = bindings.InitFeatures_requires_taproot(this.ptr);
611                 Reference.reachabilityFence(this);
612                 return ret;
613         }
614
615         /**
616          * Set this feature as optional.
617          */
618         public void set_onion_messages_optional() {
619                 bindings.InitFeatures_set_onion_messages_optional(this.ptr);
620                 Reference.reachabilityFence(this);
621         }
622
623         /**
624          * Set this feature as required.
625          */
626         public void set_onion_messages_required() {
627                 bindings.InitFeatures_set_onion_messages_required(this.ptr);
628                 Reference.reachabilityFence(this);
629         }
630
631         /**
632          * Checks if this feature is supported.
633          */
634         public boolean supports_onion_messages() {
635                 boolean ret = bindings.InitFeatures_supports_onion_messages(this.ptr);
636                 Reference.reachabilityFence(this);
637                 return ret;
638         }
639
640         /**
641          * Checks if this feature is required.
642          */
643         public boolean requires_onion_messages() {
644                 boolean ret = bindings.InitFeatures_requires_onion_messages(this.ptr);
645                 Reference.reachabilityFence(this);
646                 return ret;
647         }
648
649         /**
650          * Set this feature as optional.
651          */
652         public void set_channel_type_optional() {
653                 bindings.InitFeatures_set_channel_type_optional(this.ptr);
654                 Reference.reachabilityFence(this);
655         }
656
657         /**
658          * Set this feature as required.
659          */
660         public void set_channel_type_required() {
661                 bindings.InitFeatures_set_channel_type_required(this.ptr);
662                 Reference.reachabilityFence(this);
663         }
664
665         /**
666          * Checks if this feature is supported.
667          */
668         public boolean supports_channel_type() {
669                 boolean ret = bindings.InitFeatures_supports_channel_type(this.ptr);
670                 Reference.reachabilityFence(this);
671                 return ret;
672         }
673
674         /**
675          * Checks if this feature is required.
676          */
677         public boolean requires_channel_type() {
678                 boolean ret = bindings.InitFeatures_requires_channel_type(this.ptr);
679                 Reference.reachabilityFence(this);
680                 return ret;
681         }
682
683         /**
684          * Set this feature as optional.
685          */
686         public void set_scid_privacy_optional() {
687                 bindings.InitFeatures_set_scid_privacy_optional(this.ptr);
688                 Reference.reachabilityFence(this);
689         }
690
691         /**
692          * Set this feature as required.
693          */
694         public void set_scid_privacy_required() {
695                 bindings.InitFeatures_set_scid_privacy_required(this.ptr);
696                 Reference.reachabilityFence(this);
697         }
698
699         /**
700          * Checks if this feature is supported.
701          */
702         public boolean supports_scid_privacy() {
703                 boolean ret = bindings.InitFeatures_supports_scid_privacy(this.ptr);
704                 Reference.reachabilityFence(this);
705                 return ret;
706         }
707
708         /**
709          * Checks if this feature is required.
710          */
711         public boolean requires_scid_privacy() {
712                 boolean ret = bindings.InitFeatures_requires_scid_privacy(this.ptr);
713                 Reference.reachabilityFence(this);
714                 return ret;
715         }
716
717         /**
718          * Set this feature as optional.
719          */
720         public void set_zero_conf_optional() {
721                 bindings.InitFeatures_set_zero_conf_optional(this.ptr);
722                 Reference.reachabilityFence(this);
723         }
724
725         /**
726          * Set this feature as required.
727          */
728         public void set_zero_conf_required() {
729                 bindings.InitFeatures_set_zero_conf_required(this.ptr);
730                 Reference.reachabilityFence(this);
731         }
732
733         /**
734          * Checks if this feature is supported.
735          */
736         public boolean supports_zero_conf() {
737                 boolean ret = bindings.InitFeatures_supports_zero_conf(this.ptr);
738                 Reference.reachabilityFence(this);
739                 return ret;
740         }
741
742         /**
743          * Checks if this feature is required.
744          */
745         public boolean requires_zero_conf() {
746                 boolean ret = bindings.InitFeatures_requires_zero_conf(this.ptr);
747                 Reference.reachabilityFence(this);
748                 return ret;
749         }
750
751 }