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 ...@@ -3,20 +3,23 @@ import Bindings
public struct Connection { public struct Connection {
public var getId: ConnectionGetId public var getId: ConnectionGetId
public var getPartner: ConnectionGetPartner public var getPartner: ConnectionGetPartner
public var close: ConnectionClose
} }
extension Connection { extension Connection {
public static func live(_ bindingsConnection: BindingsConnection) -> Connection { public static func live(_ bindingsConnection: BindingsConnection) -> Connection {
Connection( Connection(
getId: .live(bindingsConnection), getId: .live(bindingsConnection),
getPartner: .live(bindingsConnection) getPartner: .live(bindingsConnection),
close: .live(bindingsConnection)
) )
} }
public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> Connection { public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> Connection {
Connection( Connection(
getId: .live(bindingsConnection), getId: .live(bindingsConnection),
getPartner: .live(bindingsConnection) getPartner: .live(bindingsConnection),
close: .live(bindingsConnection)
) )
} }
} }
...@@ -24,6 +27,7 @@ extension Connection { ...@@ -24,6 +27,7 @@ extension Connection {
extension Connection { extension Connection {
public static let unimplemented = Connection( public static let unimplemented = Connection(
getId: .unimplemented, 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