Initial checkin
[ldk-swift-linux] / LDKSwift / Sources / LDKSwift / options / NetAddress.swift
1 import LDKCHeaders
2
3 public class NetAddress {
4
5     public internal(set) var cOpaqueStruct: LDKNetAddress?;
6
7         
8
9     public init(pointer: LDKNetAddress){
10                 self.cOpaqueStruct = pointer
11         }
12
13     /* OPTION_METHODS_START */
14
15                                 public enum NetAddressValueType {
16                                         case IPv4, IPv6, OnionV2, OnionV3
17                                 }
18                                 
19                                 public func getValueType() -> NetAddressValueType? {
20                                         switch self.cOpaqueStruct?.tag {
21                     
22                                         case LDKNetAddress_IPv4:
23                                                 return .IPv4
24                                         case LDKNetAddress_IPv6:
25                                                 return .IPv6
26                                         case LDKNetAddress_OnionV2:
27                                                 return .OnionV2
28                                         case LDKNetAddress_OnionV3:
29                                                 return .OnionV3
30                     default:
31                         return nil
32                     }
33                                 }
34                                 
35                                 
36                                         public func getValueAsIPv4() -> IPv4? {
37                                                 if self.cOpaqueStruct?.tag != LDKNetAddress_IPv4 {
38                                                         return nil
39                                                 }
40                                                 return IPv4(pointer: self.cOpaqueStruct!.i_pv4)
41                                         }
42                                 
43                                         public func getValueAsIPv6() -> IPv6? {
44                                                 if self.cOpaqueStruct?.tag != LDKNetAddress_IPv6 {
45                                                         return nil
46                                                 }
47                                                 return IPv6(pointer: self.cOpaqueStruct!.i_pv6)
48                                         }
49                                 
50                                         public func getValueAsOnionV2() -> OnionV2? {
51                                                 if self.cOpaqueStruct?.tag != LDKNetAddress_OnionV2 {
52                                                         return nil
53                                                 }
54                                                 return OnionV2(pointer: self.cOpaqueStruct!.onion_v2)
55                                         }
56                                 
57                                         public func getValueAsOnionV3() -> OnionV3? {
58                                                 if self.cOpaqueStruct?.tag != LDKNetAddress_OnionV3 {
59                                                         return nil
60                                                 }
61                                                 return OnionV3(pointer: self.cOpaqueStruct!.onion_v3)
62                                         }
63                                 
64                         
65     /* OPTION_METHODS_END */
66
67         
68
69                         public class IPv4 {
70                                 
71                                 
72                                 var cOpaqueStruct: LDKNetAddress_LDKIPv4_Body?;
73                                 fileprivate init(pointer: LDKNetAddress_LDKIPv4_Body) {
74                                         self.cOpaqueStruct = pointer
75                                 }
76                         
77                                 
78                                 
79                                         public func getAddr() -> [UInt8] {
80                                                 return Bindings.LDKFourBytes_to_array(nativeType: self.cOpaqueStruct!.addr)
81                                         }
82                                 
83                                         public func getPort() -> UInt16 {
84                                                 return self.cOpaqueStruct!.port
85                                         }
86                                 
87                                 
88                         }
89                 
90
91                         public class IPv6 {
92                                 
93                                 
94                                 var cOpaqueStruct: LDKNetAddress_LDKIPv6_Body?;
95                                 fileprivate init(pointer: LDKNetAddress_LDKIPv6_Body) {
96                                         self.cOpaqueStruct = pointer
97                                 }
98                         
99                                 
100                                 
101                                         public func getAddr() -> [UInt8] {
102                                                 return Bindings.LDKSixteenBytes_to_array(nativeType: self.cOpaqueStruct!.addr)
103                                         }
104                                 
105                                         public func getPort() -> UInt16 {
106                                                 return self.cOpaqueStruct!.port
107                                         }
108                                 
109                                 
110                         }
111                 
112
113                         public class OnionV2 {
114                                 
115                                 
116                                 var cOpaqueStruct: LDKNetAddress_LDKOnionV2_Body?;
117                                 fileprivate init(pointer: LDKNetAddress_LDKOnionV2_Body) {
118                                         self.cOpaqueStruct = pointer
119                                 }
120                         
121                                 
122                                 
123                                         public func getAddr() -> [UInt8] {
124                                                 return Bindings.LDKTenBytes_to_array(nativeType: self.cOpaqueStruct!.addr)
125                                         }
126                                 
127                                         public func getPort() -> UInt16 {
128                                                 return self.cOpaqueStruct!.port
129                                         }
130                                 
131                                 
132                         }
133                 
134
135                         public class OnionV3 {
136                                 
137                                 
138                                 var cOpaqueStruct: LDKNetAddress_LDKOnionV3_Body?;
139                                 fileprivate init(pointer: LDKNetAddress_LDKOnionV3_Body) {
140                                         self.cOpaqueStruct = pointer
141                                 }
142                         
143                                 
144                                 
145                                         public func getEd25519_pubkey() -> [UInt8] {
146                                                 return Bindings.LDKThirtyTwoBytes_to_array(nativeType: self.cOpaqueStruct!.ed25519_pubkey)
147                                         }
148                                 
149                                         public func getChecksum() -> UInt16 {
150                                                 return self.cOpaqueStruct!.checksum
151                                         }
152                                 
153                                         public func getVersion() -> UInt8 {
154                                                 return self.cOpaqueStruct!.version
155                                         }
156                                 
157                                         public func getPort() -> UInt16 {
158                                                 return self.cOpaqueStruct!.port
159                                         }
160                                 
161                                 
162                         }
163                 
164 }