From 786f12f311ad1e36c188bd027a190db02dab0d33 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 21 Jul 2022 17:42:31 +0100
Subject: [PATCH] Add CmixNetworkFollowerStatus functor

---
 Sources/ElixxirDAppsSDK/Cmix.swift            |  9 +++++--
 .../CmixNetworkFollowerStatus.swift           | 26 +++++++++++++++++++
 .../{Legacy => }/NetworkFollowerStatus.swift  |  0
 3 files changed, 33 insertions(+), 2 deletions(-)
 create mode 100644 Sources/ElixxirDAppsSDK/CmixNetworkFollowerStatus.swift
 rename Sources/ElixxirDAppsSDK/{Legacy => }/NetworkFollowerStatus.swift (100%)

diff --git a/Sources/ElixxirDAppsSDK/Cmix.swift b/Sources/ElixxirDAppsSDK/Cmix.swift
index 5a8ace4b..a0bcced7 100644
--- a/Sources/ElixxirDAppsSDK/Cmix.swift
+++ b/Sources/ElixxirDAppsSDK/Cmix.swift
@@ -5,6 +5,7 @@ public struct Cmix {
   public var makeReceptionIdentity: MakeReceptionIdentity
   public var isHealthy: CmixIsHealthy
   public var hasRunningProcesses: CmixHasRunningProcesses
+  public var networkFollowerStatus: CmixNetworkFollowerStatus
 }
 
 extension Cmix {
@@ -12,7 +13,9 @@ extension Cmix {
     Cmix(
       getId: .live(bindingsCmix),
       makeReceptionIdentity: .live(bindingsCmix),
-      isHealthy: .live(bindingsCmix)
+      isHealthy: .live(bindingsCmix),
+      hasRunningProcesses: .live(bindingsCmix),
+      networkFollowerStatus: .live(bindingsCmix)
     )
   }
 }
@@ -21,6 +24,8 @@ extension Cmix {
   public static let unimplemented = Cmix(
     getId: .unimplemented,
     makeReceptionIdentity: .unimplemented,
-    isHealthy: .unimplemented
+    isHealthy: .unimplemented,
+    hasRunningProcesses: .unimplemented,
+    networkFollowerStatus: .unimplemented
   )
 }
diff --git a/Sources/ElixxirDAppsSDK/CmixNetworkFollowerStatus.swift b/Sources/ElixxirDAppsSDK/CmixNetworkFollowerStatus.swift
new file mode 100644
index 00000000..53857634
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/CmixNetworkFollowerStatus.swift
@@ -0,0 +1,26 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct CmixNetworkFollowerStatus {
+  public var run: () -> NetworkFollowerStatus
+
+  public func callAsFunction() -> NetworkFollowerStatus {
+    run()
+  }
+}
+
+extension CmixNetworkFollowerStatus {
+  public static func live(_ bindingsCmix: BindingsCmix) -> CmixNetworkFollowerStatus {
+    CmixNetworkFollowerStatus {
+      NetworkFollowerStatus(
+        rawValue: bindingsCmix.networkFollowerStatus()
+      )
+    }
+  }
+}
+
+extension CmixNetworkFollowerStatus {
+  public static let unimplemented = CmixNetworkFollowerStatus(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/Legacy/NetworkFollowerStatus.swift b/Sources/ElixxirDAppsSDK/NetworkFollowerStatus.swift
similarity index 100%
rename from Sources/ElixxirDAppsSDK/Legacy/NetworkFollowerStatus.swift
rename to Sources/ElixxirDAppsSDK/NetworkFollowerStatus.swift
-- 
GitLab