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

Add SingleUseResponse callback

parent d807b1d5
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
import Bindings
import XCTestDynamicOverlay
public struct SingleUseResponse {
public init(handle: @escaping (Result<SingleUseResponseReport, NSError>) -> Void) {
self.handle = handle
}
public var handle: (Result<SingleUseResponseReport, NSError>) -> Void
}
extension SingleUseResponse {
public static let unimplemented = SingleUseResponse(
handle: XCTUnimplemented("\(Self.self)")
)
}
extension SingleUseResponse {
func makeBindingsSingleUseResponse() -> BindingsSingleUseResponseProtocol {
class Response: NSObject, BindingsSingleUseResponseProtocol {
init(_ callback: SingleUseResponse) {
self.callback = callback
}
let callback: SingleUseResponse
func callback(_ responseReport: Data?, err: Error?) {
if let error = err {
callback.handle(.failure(error as NSError))
} else if let reportData = responseReport {
do {
callback.handle(.success(try SingleUseResponseReport.decode(reportData)))
} catch {
callback.handle(.failure(error as NSError))
}
} else {
fatalError("BindingsSingleUseResponse received `nil` responseReport and `nil` err")
}
}
}
return Response(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