import Bindings import XCTestDynamicOverlay public struct LoadOrNewUserDiscovery { public var run: (Int, UdNetworkStatus, String, Data) throws -> UserDiscovery public func callAsFunction( e2eId: Int, follower: UdNetworkStatus, username: String, registrationValidationSignature: Data ) throws -> UserDiscovery { try run(e2eId, follower, username, registrationValidationSignature) } } extension LoadOrNewUserDiscovery { public static let live = LoadOrNewUserDiscovery { e2eId, follower, username, registrationValidationSignature in var error: NSError? let bindingsUD = BindingsLoadOrNewUserDiscovery( e2eId, follower.makeBindingsUdNetworkStatus(), username, registrationValidationSignature, &error ) if let error = error { throw error } guard let bindingsUD = bindingsUD else { fatalError("BindingsLoadOrNewUserDiscovery returned `nil` without providing error") } return .live(bindingsUD) } } extension LoadOrNewUserDiscovery { public static let unimplemented = LoadOrNewUserDiscovery( run: XCTUnimplemented("\(Self.self)") ) }