From b7b43996279c4a94b8d2dceb360581d2f90606bf Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 20 Jul 2022 12:15:30 +0100
Subject: [PATCH] Add MakeReceptionIdentity functor

---
 Sources/ElixxirDAppsSDK/Cmix.swift            | 10 ++++++---
 .../MakeReceptionIdentity.swift               | 22 +++++++++++++++++++
 2 files changed, 29 insertions(+), 3 deletions(-)
 create mode 100644 Sources/ElixxirDAppsSDK/MakeReceptionIdentity.swift

diff --git a/Sources/ElixxirDAppsSDK/Cmix.swift b/Sources/ElixxirDAppsSDK/Cmix.swift
index e0c71e85..e14292d9 100644
--- a/Sources/ElixxirDAppsSDK/Cmix.swift
+++ b/Sources/ElixxirDAppsSDK/Cmix.swift
@@ -1,15 +1,19 @@
 import Bindings
 
 public struct Cmix {
-  // TODO:
+  public var makeReceptionIdentity: MakeReceptionIdentity
 }
 
 extension Cmix {
   public static func live(_ bindingsCmix: BindingsCmix) -> Cmix {
-    Cmix()
+    Cmix(
+      makeReceptionIdentity: .live(bindingsCmix)
+    )
   }
 }
 
 extension Cmix {
-  public static let unimplemented = Cmix()
+  public static let unimplemented = Cmix(
+    makeReceptionIdentity: .unimplemented
+  )
 }
diff --git a/Sources/ElixxirDAppsSDK/MakeReceptionIdentity.swift b/Sources/ElixxirDAppsSDK/MakeReceptionIdentity.swift
new file mode 100644
index 00000000..65b4592f
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/MakeReceptionIdentity.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct MakeReceptionIdentity {
+  public var run: () throws -> Data
+
+  public func callAsFunction() throws -> Data {
+    try run()
+  }
+}
+
+extension MakeReceptionIdentity {
+  public static func live(_ bindingsCmix: BindingsCmix) -> MakeReceptionIdentity {
+    MakeReceptionIdentity(run: bindingsCmix.makeReceptionIdentity)
+  }
+}
+
+extension MakeReceptionIdentity {
+  public static let unimplemented = MakeReceptionIdentity(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab