Skip to content
Snippets Groups Projects
Commit 4e5e219f authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Add ConnectionClose functor

parent e05b4269
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
......@@ -3,20 +3,23 @@ import Bindings
public struct Connection {
public var getId: ConnectionGetId
public var getPartner: ConnectionGetPartner
public var close: ConnectionClose
}
extension Connection {
public static func live(_ bindingsConnection: BindingsConnection) -> Connection {
Connection(
getId: .live(bindingsConnection),
getPartner: .live(bindingsConnection)
getPartner: .live(bindingsConnection),
close: .live(bindingsConnection)
)
}
public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> Connection {
Connection(
getId: .live(bindingsConnection),
getPartner: .live(bindingsConnection)
getPartner: .live(bindingsConnection),
close: .live(bindingsConnection)
)
}
}
......@@ -24,6 +27,7 @@ extension Connection {
extension Connection {
public static let unimplemented = Connection(
getId: .unimplemented,
getPartner: .unimplemented
getPartner: .unimplemented,
close: .unimplemented
)
}
import Bindings
import XCTestDynamicOverlay
public struct ConnectionClose {
public var run: () throws -> Void
public func callAsFunction() throws {
try run()
}
}
extension ConnectionClose {
public static func live(_ bindingsConnection: BindingsConnection) -> ConnectionClose {
ConnectionClose(run: bindingsConnection.close)
}
public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> ConnectionClose {
ConnectionClose(run: bindingsConnection.close)
}
}
extension ConnectionClose {
public static let unimplemented = ConnectionClose(
run: XCTUnimplemented("\(Self.self)")
)
}
import Bindings
public struct ConnectionCloser {
public var close: () throws -> Void
public func callAsFunction() throws {
try close()
}
}
extension ConnectionCloser {
public static func live(
bindingsConnection: BindingsConnection
) -> ConnectionCloser {
ConnectionCloser(close: bindingsConnection.close)
}
public static func live(
bindingsAuthenticatedConnection: BindingsAuthenticatedConnection
) -> ConnectionCloser {
ConnectionCloser(close: bindingsAuthenticatedConnection.close)
}
}
#if DEBUG
extension ConnectionCloser {
public static let failing = ConnectionCloser {
fatalError("Not implemented")
}
}
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment