diff --git a/Sources/ElixxirDAppsSDK/NetworkFollower.swift b/Sources/ElixxirDAppsSDK/NetworkFollower.swift index 31dab0901a0b5cbc8ebc20ba97478e64a4661d4a..40e8b530f6bbbd0fe7fcb278036f40de6637d57f 100644 --- a/Sources/ElixxirDAppsSDK/NetworkFollower.swift +++ b/Sources/ElixxirDAppsSDK/NetworkFollower.swift @@ -3,13 +3,15 @@ import Bindings public struct NetworkFollower { public var status: NetworkFollowerStatusProvider public var start: NetworkFollowerStarter + public var stop: NetworkFollowerStopper } extension NetworkFollower { public static func live(bindingsClient: BindingsClient) -> NetworkFollower { NetworkFollower( status: .live(bindingsClient: bindingsClient), - start: .live(bindingsClient: bindingsClient) + start: .live(bindingsClient: bindingsClient), + stop: .live(bindingsClient: bindingsClient) ) } } @@ -18,7 +20,8 @@ extension NetworkFollower { extension NetworkFollower { public static let failing = NetworkFollower( status: .failing, - start: .failing + start: .failing, + stop: .failing ) } #endif diff --git a/Sources/ElixxirDAppsSDK/NetworkFollowerStopper.swift b/Sources/ElixxirDAppsSDK/NetworkFollowerStopper.swift new file mode 100644 index 0000000000000000000000000000000000000000..dfe95111e09f49ce1f2b77f8baaa044f9671fb82 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/NetworkFollowerStopper.swift @@ -0,0 +1,24 @@ +import Bindings + +public struct NetworkFollowerStopper { + public var stop: () throws -> Void + + public func callAsFunction() throws { + try stop() + } +} + +extension NetworkFollowerStopper { + public static func live(bindingsClient: BindingsClient) -> NetworkFollowerStopper { + NetworkFollowerStopper(stop: bindingsClient.stopNetworkFollower) + } +} + +#if DEBUG +extension NetworkFollowerStopper { + public static let failing = NetworkFollowerStopper { + struct NotImplemented: Error {} + throw NotImplemented() + } +} +#endif