import Bindings import XCTestDynamicOverlay public struct MultiLookupUD { public struct Params: Equatable { public init( e2eId: Int, udContact: Contact, lookupIds: [Data], singleRequestParams: Data = GetSingleUseParams.liveDefault() ) { self.e2eId = e2eId self.udContact = udContact self.lookupIds = lookupIds self.singleRequestParams = singleRequestParams } public var e2eId: Int public var udContact: Contact public var lookupIds: [Data] public var singleRequestParams: Data } public var run: (Params, UdMultiLookupCallback) throws -> Void public func callAsFunction(params: Params, callback: UdMultiLookupCallback) throws -> Void { try run(params, callback) } } extension MultiLookupUD { public static func live() -> MultiLookupUD { MultiLookupUD { params, callback in var error: NSError? let result = BindingsMultiLookupUD( params.e2eId, params.udContact.data, callback.makeBindingsUdMultiLookupCallback(), try JSONEncoder().encode(params.lookupIds), params.singleRequestParams, &error ) if let error = error { throw error } guard result else { fatalError("BindingsMultiLookupUD returned `false` without providing error") } } } } extension MultiLookupUD { public static let unimplemented = MultiLookupUD( run: XCTUnimplemented("\(Self.self)") ) }