From 1697f998c5f69f33778135c2b3cf7c27514fc567 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 25 Jul 2022 18:26:32 +0100 Subject: [PATCH] Add LogWriter --- Sources/ElixxirDAppsSDK/LogWriter.swift | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/LogWriter.swift diff --git a/Sources/ElixxirDAppsSDK/LogWriter.swift b/Sources/ElixxirDAppsSDK/LogWriter.swift new file mode 100644 index 00000000..47dd0329 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/LogWriter.swift @@ -0,0 +1,37 @@ +import Bindings +import XCTestDynamicOverlay + +public struct LogWriter { + public init(handle: @escaping (String) -> Void) { + self.handle = handle + } + + public var handle: (String) -> Void +} + +extension LogWriter { + public static let unimplemented = LogWriter( + handle: XCTUnimplemented("\(Self.self)") + ) +} + +extension LogWriter { + func makeBindingsLogWriter() -> BindingsLogWriterProtocol { + class Writer: NSObject, BindingsLogWriterProtocol { + init(_ writer: LogWriter) { + self.writer = writer + } + + let writer: LogWriter + + func log(_ p0: String?) { + guard let p0 = p0 else { + fatalError("BindingsLogWriter.log received `nil`") + } + writer.handle(p0) + } + } + + return Writer(self) + } +} -- GitLab