@@ -149,15 +149,22 @@ extension Double {
149
149
}
150
150
}
151
151
152
+ // From .NET TimeSpan (XSD Duration) to Swift TimeInterval
153
+ func fromTimeSpan( timeSpan: String ) -> TimeInterval ? {
154
+ return TimeInterval . fromString ( timeSpan)
155
+ }
156
+
157
+ // From Swift TimeInterval to .NET TimeSpan (XSD Duration)
158
+ func toTimeSpan( timeInterval: TimeInterval ) -> String {
159
+ return timeInterval. toXsdDuration ( )
160
+ }
161
+
152
162
@propertyWrapper
153
163
public struct TimeSpan {
154
164
public var wrappedValue : TimeInterval ? = 0
155
165
public init ( wrappedValue: TimeInterval ? ) {
156
166
self . wrappedValue = wrappedValue
157
167
}
158
- public static func parse( _ timeSpan: String ) -> TimeInterval ? {
159
- return TimeInterval . fromString ( timeSpan)
160
- }
161
168
}
162
169
163
170
extension TimeSpan : Codable {
@@ -195,18 +202,39 @@ public class TimeIntervalConveter : StringConvertible {
195
202
}
196
203
}
197
204
205
+
206
+ // From .NET Guid to Guid string
207
+ func fromGuid( _ guid: String ) -> String {
208
+ return guid
209
+ }
210
+
211
+ // From Guid string to .NET Guid
212
+ func toGuid( _ guid: String ) -> String {
213
+ return guid
214
+ }
215
+
216
+ // From .NET byte[] (Base64 String) to Swift [UInt8]
217
+ func fromByteArray( _ base64String: String ) -> [ UInt8 ] {
218
+ if let data = Data ( base64Encoded: base64String) {
219
+ return [ UInt8] ( data)
220
+ }
221
+ return [ ]
222
+ }
223
+
224
+ // From Swift [UInt8] to .NET byte[] (Base64 String)
225
+ func toByteArray( _ bytes: [ UInt8 ] ) -> String {
226
+ return Data ( bytes) . base64EncodedString ( )
227
+ }
228
+
198
229
public class UInt8Base64Converter : StringConvertible {
199
230
public var forType = Reflect< [ UInt8] > . typeName
200
231
201
232
public func fromString< T> ( _ type: T . Type , _ string: String ) -> T ? {
202
- if let data = Data ( base64Encoded: string) {
203
- return [ UInt8] ( data) as? T
204
- }
205
- return [ ] as? T
233
+ return fromByteArray ( string) as? T
206
234
}
207
235
public func toString< T> ( instance: T ) -> String ? {
208
236
if let bytes = instance as? [ UInt8 ] {
209
- let to = Data ( bytes) . base64EncodedString ( )
237
+ let to = toByteArray ( bytes)
210
238
return to
211
239
}
212
240
return nil
0 commit comments