Skip to content
Snippets Groups Projects

Bindings API wrapper

Merged Dariusz Rybicki requested to merge feature/bindings-api-wrapper into main
1 file
+ 32
0
Compare changes
  • Side-by-side
  • Inline
import Bindings
public struct ContactIdProvider {
public var get: (Data) throws -> Data
public func callAsFunction(contact: Data) throws -> Data {
try get(contact)
}
}
extension ContactIdProvider {
public static let live = ContactIdProvider { contact in
var error: NSError?
let id = BindingsGetIDFromContact(contact, &error)
if let error = error {
throw error
}
guard let id = id else {
fatalError("BindingsGetIDFromContact returned `nil` without providing error")
}
return id
}
}
#if DEBUG
extension ContactIdProvider {
public static let failing = ContactIdProvider { _ in
struct NotImplemented: Error {}
throw NotImplemented()
}
}
#endif
Loading