import Bindings import XCTestDynamicOverlay public struct NewGroupChat { public var run: (Int, GroupRequest, GroupChatProcessor) throws -> GroupChat public func callAsFunction( e2eId: Int, groupRequest: GroupRequest, groupChatProcessor: GroupChatProcessor ) throws -> GroupChat { try run(e2eId, groupRequest, groupChatProcessor) } } extension NewGroupChat { public static let live = NewGroupChat { e2eId, groupRequest, groupChatProcessor in var error: NSError? let bindingsGroupChat = BindingsNewGroupChat( e2eId, groupRequest.makeBindingsGroupRequest(), groupChatProcessor.makeBindingsGroupChatProcessor(), &error ) if let error = error { throw error } guard let bindingsGroupChat = bindingsGroupChat else { fatalError("BindingsNewGroupChat returned `nil` without providing error") } return .live(bindingsGroupChat) } } extension NewGroupChat { public static let unimplemented = NewGroupChat( run: XCTUnimplemented("\(Self.self)") ) }