import Bindings public struct NDFDownloader { public var run: (Environment) throws -> Data public func callAsFunction(_ env: Environment) throws -> Data { try run(env) } } extension NDFDownloader { public static let live = NDFDownloader { env in var error: NSError? let data = BindingsDownloadAndVerifySignedNdfWithUrl( env.url.absoluteString, env.cert, &error ) if let error = error { throw error } guard let data = data else { throw BindingsDownloadAndVerifySignedNdfWithUrlUnknownError() } return data } } #if DEBUG extension NDFDownloader { public static let failing = NDFDownloader { _ in struct NotImplemented: Error {} throw NotImplemented() } } #endif