diff --git a/Sources/XXClient/Helpers/MakeContact.swift b/Sources/XXClient/Helpers/MakeContact.swift new file mode 100644 index 0000000000000000000000000000000000000000..2e0027bd26f5e6b6c533d9bf3a3c1bf29df0fa81 --- /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) } + ) + } + } +}