Skip to content
Snippets Groups Projects

Update Bindings

Merged Dariusz Rybicki requested to merge feature/debug-bindings into development
1 file
+ 17
15
Compare changes
  • Side-by-side
  • Inline
@@ -5,21 +5,24 @@ public struct FileTransferProgressCallback {
@@ -5,21 +5,24 @@ public struct FileTransferProgressCallback {
public struct Callback {
public struct Callback {
public init(
public init(
progress: Progress,
progress: Progress,
partTracker: FilePartTracker
partTracker: FilePartTracker,
 
error: Error?
) {
) {
self.progress = progress
self.progress = progress
self.partTracker = partTracker
self.partTracker = partTracker
 
self.error = error
}
}
public var progress: Progress
public var progress: Progress
public var partTracker: FilePartTracker
public var partTracker: FilePartTracker
 
public var error: Error?
}
}
public init(handle: @escaping (Result<Callback, NSError>) -> Void) {
public init(handle: @escaping (Callback) -> Void) {
self.handle = handle
self.handle = handle
}
}
public var handle: (Result<Callback, NSError>) -> Void
public var handle: (Callback) -> Void
}
}
extension FileTransferProgressCallback {
extension FileTransferProgressCallback {
@@ -51,24 +54,23 @@ extension FileTransferProgressCallback {
@@ -51,24 +54,23 @@ extension FileTransferProgressCallback {
let debugName: String
let debugName: String
func callback(_ payload: Data?, t: BindingsFilePartTracker?, err: Error?) {
func callback(_ payload: Data?, t: BindingsFilePartTracker?, err: Error?) {
if let error = err {
callback.handle(.failure(error as NSError))
return
}
guard let payload = payload else {
guard let payload = payload else {
fatalError("\(debugName) received `nil` payload without providing error")
fatalError("\(debugName) received `nil` payload without providing error")
}
}
guard let tracker = t else {
let progress: Progress
fatalError("\(debugName) received `nil` tracker without providing error")
}
do {
do {
callback.handle(.success(.init(
progress = try Progress.decode(payload)
progress: try Progress.decode(payload),
partTracker: .live(tracker)
)))
} catch {
} catch {
callback.handle(.failure(error as NSError))
fatalError("\(debugName) payload decoding failed with error: \(error)")
 
}
 
guard let tracker = t else {
 
fatalError("\(debugName) received `nil` tracker without providing error")
}
}
 
callback.handle(.init(
 
progress: progress,
 
partTracker: .live(tracker),
 
error: err
 
))
}
}
}
}
Loading