Initial checkin
[ldk-swift-linux] / LDKSwift / Sources / LDKSwift / options / Fallback.swift
1 import LDKCHeaders
2
3 public class Fallback {
4
5     public internal(set) var cOpaqueStruct: LDKFallback?;
6
7         
8
9     public init(pointer: LDKFallback){
10                 self.cOpaqueStruct = pointer
11         }
12
13     /* OPTION_METHODS_START */
14
15                                 public enum FallbackValueType {
16                                         case SegWitProgram, PubKeyHash, ScriptHash
17                                 }
18                                 
19                                 public func getValueType() -> FallbackValueType? {
20                                         switch self.cOpaqueStruct?.tag {
21                     
22                                         case LDKFallback_SegWitProgram:
23                                                 return .SegWitProgram
24                                         case LDKFallback_PubKeyHash:
25                                                 return .PubKeyHash
26                                         case LDKFallback_ScriptHash:
27                                                 return .ScriptHash
28                     default:
29                         return nil
30                     }
31                                 }
32                                 
33                                 
34                                         public func getValueAsSegWitProgram() -> SegWitProgram? {
35                                                 if self.cOpaqueStruct?.tag != LDKFallback_SegWitProgram {
36                                                         return nil
37                                                 }
38                                                 return SegWitProgram(pointer: self.cOpaqueStruct!.seg_wit_program)
39                                         }
40                                 
41                                         public func getValueAsPubKeyHash() -> [UInt8]? {
42                                                 if self.cOpaqueStruct?.tag != LDKFallback_PubKeyHash {
43                                                         return nil
44                                                 }
45                                                 return Bindings.LDKTwentyBytes_to_array(nativeType: self.cOpaqueStruct!.pub_key_hash)
46                                         }
47                                 
48                                         public func getValueAsScriptHash() -> [UInt8]? {
49                                                 if self.cOpaqueStruct?.tag != LDKFallback_ScriptHash {
50                                                         return nil
51                                                 }
52                                                 return Bindings.LDKTwentyBytes_to_array(nativeType: self.cOpaqueStruct!.script_hash)
53                                         }
54                                 
55                         
56     /* OPTION_METHODS_END */
57
58         
59
60                         public class SegWitProgram {
61                                 
62                                 
63                                 var cOpaqueStruct: LDKFallback_LDKSegWitProgram_Body?;
64                                 fileprivate init(pointer: LDKFallback_LDKSegWitProgram_Body) {
65                                         self.cOpaqueStruct = pointer
66                                 }
67                         
68                                 
69                                 
70                                         public func getVersion() -> UInt8 {
71                                                 return self.cOpaqueStruct!.version._0
72                                         }
73                                 
74                                         public func getProgram() -> [UInt8] {
75                                                 return Bindings.LDKCVec_u8Z_to_array(nativeType: self.cOpaqueStruct!.program)
76                                         }
77                                 
78                                 
79                         }
80                 
81 }