From bb6ac412e612e14168af02e0ea9cfbf354f688b6 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 26 Aug 2022 12:29:26 +0100 Subject: [PATCH] Add MakeContact functor --- Sources/XXClient/Helpers/MakeContact.swift | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Sources/XXClient/Helpers/MakeContact.swift diff --git a/Sources/XXClient/Helpers/MakeContact.swift b/Sources/XXClient/Helpers/MakeContact.swift new file mode 100644 index 00000000..2e0027bd --- /dev/null +++ b/Sources/XXClient/Helpers/MakeContact.swift @@ -0,0 +1,26 @@ +import Foundation + +public struct MakeContact { + public var run: (Data) -> Contact + + public func callAsFunction(_ data: Data) -> Contact { + run(data) + } +} + +extension MakeContact { + public static func live( + getIdFromContact: GetIdFromContact = .live, + getPublicKeyFromContact: GetPublicKeyFromContact = .live, + getFactsFromContact: GetFactsFromContact = .live + ) -> MakeContact { + MakeContact { data in + Contact( + data: data, + getId: { try getIdFromContact(data) }, + getPublicKey: { try getPublicKeyFromContact(data) }, + getFacts: { try getFactsFromContact(data) } + ) + } + } +} -- GitLab