From 3f6fa1238383574592fc4311ff3512bff4b9032f Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 20 Jul 2022 16:11:39 +0100
Subject: [PATCH] Add CmixGetId functor

---
 Sources/ElixxirDAppsSDK/Cmix.swift      |  3 +++
 Sources/ElixxirDAppsSDK/CmixGetId.swift | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+)
 create mode 100644 Sources/ElixxirDAppsSDK/CmixGetId.swift

diff --git a/Sources/ElixxirDAppsSDK/Cmix.swift b/Sources/ElixxirDAppsSDK/Cmix.swift
index e14292d9..694f585e 100644
--- a/Sources/ElixxirDAppsSDK/Cmix.swift
+++ b/Sources/ElixxirDAppsSDK/Cmix.swift
@@ -1,12 +1,14 @@
 import Bindings
 
 public struct Cmix {
+  public var getId: CmixGetId
   public var makeReceptionIdentity: MakeReceptionIdentity
 }
 
 extension Cmix {
   public static func live(_ bindingsCmix: BindingsCmix) -> Cmix {
     Cmix(
+      getId: .live(bindingsCmix),
       makeReceptionIdentity: .live(bindingsCmix)
     )
   }
@@ -14,6 +16,7 @@ extension Cmix {
 
 extension Cmix {
   public static let unimplemented = Cmix(
+    getId: .unimplemented,
     makeReceptionIdentity: .unimplemented
   )
 }
diff --git a/Sources/ElixxirDAppsSDK/CmixGetId.swift b/Sources/ElixxirDAppsSDK/CmixGetId.swift
new file mode 100644
index 00000000..2d4a9255
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/CmixGetId.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct CmixGetId {
+  public var run: () -> Int
+
+  public func callAsFunction() -> Int {
+    run()
+  }
+}
+
+extension CmixGetId {
+  public static func live(_ bindingsCmix: BindingsCmix) -> CmixGetId {
+    CmixGetId(run: bindingsCmix.getID)
+  }
+}
+
+extension CmixGetId {
+  public static let unimplemented = CmixGetId(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab