Skip to content
Snippets Groups Projects
Commit 432a7c86 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Add ReceiveFileCallback

parent 4d8f9a72
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
import Bindings
import XCTestDynamicOverlay
public struct ReceiveFileCallback {
public var handle: (Result<ReceivedFile, NSError>) -> Void
}
extension ReceiveFileCallback {
public static let unimplemented = ReceiveFileCallback(
handle: XCTUnimplemented("\(Self.self)")
)
}
extension ReceiveFileCallback {
func makeBindingsReceiveFileCallback() -> BindingsReceiveFileCallbackProtocol {
class CallbackObject: NSObject, BindingsReceiveFileCallbackProtocol {
init(_ callback: ReceiveFileCallback) {
self.callback = callback
}
let callback: ReceiveFileCallback
func callback(_ payload: Data?, err: Error?) {
if let error = err {
callback.handle(.failure(error as NSError))
} else if let data = payload {
do {
callback.handle(.success(try ReceivedFile.decode(data)))
} catch {
callback.handle(.failure(error as NSError))
}
} else {
fatalError("BindingsReceiveFileCallback received `nil` payload and `nil` error")
}
}
}
return CallbackObject(self)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment