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

Add TransmitSingleUse functor

parent 8b6f7067
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
import Bindings
import XCTestDynamicOverlay
public struct TransmitSingleUse {
public struct Params: Equatable {
public init(
e2eId: Int,
recipient: Data,
tag: String,
payload: Data,
paramsJSON: Data
) {
self.e2eId = e2eId
self.recipient = recipient
self.tag = tag
self.payload = payload
self.paramsJSON = paramsJSON
}
public var e2eId: Int
public var recipient: Data
public var tag: String
public var payload: Data
public var paramsJSON: Data
}
public var run: (Params, SingleUseResponse) throws -> SingleUseSendReport
public func callAsFunction(
params: Params,
callback: SingleUseResponse
) throws -> SingleUseSendReport {
try run(params, callback)
}
}
extension TransmitSingleUse {
public static let live = TransmitSingleUse { params, callback in
var error: NSError?
let reportData = BindingsTransmitSingleUse(
params.e2eId,
params.recipient,
params.tag,
params.payload,
params.paramsJSON,
callback.makeBindingsSingleUseResponse(),
&error
)
if let error = error {
throw error
}
guard let reportData = reportData else {
fatalError("BindingsTransmitSingleUse returned `nil` without providing error")
}
return try SingleUseSendReport.decode(reportData)
}
}
extension TransmitSingleUse {
public static let unimplemented = TransmitSingleUse(
run: XCTUnimplemented("\(Self.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