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

Add RequestRestlike functor

parent 3ace5182
No related branches found
No related tags found
Loading
import Bindings
import XCTestDynamicOverlay
public struct RequestRestlike {
public var run: (Int, Data, RestlikeMessage, Data) throws -> RestlikeMessage
public func callAsFunction(
e2eId: Int,
recipient: Data,
request: RestlikeMessage,
paramsJSON: Data
) throws -> RestlikeMessage {
try run(e2eId, recipient, request, paramsJSON)
}
}
extension RequestRestlike {
public static let live = RequestRestlike { e2dId, recipient, request, paramsJSON in
var error: NSError?
let responseData = BindingsRequestRestLike(
e2dId,
recipient,
try request.encode(),
paramsJSON,
&error
)
if let error = error {
throw error
}
guard let responseData = responseData else {
fatalError("BindingsRequestRestLike returned `nil` without providing error")
}
return try RestlikeMessage.decode(responseData)
}
}
extension RequestRestlike {
public static let unimplemented = RequestRestlike(
run: XCTUnimplemented("\(Self.self)")
)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment