XCTLStream.swift 669 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // XCTLStream.swift
  3. // XCTreeLang
  4. //
  5. // Created by 邢铖 on 2023/6/1.
  6. //
  7. import Foundation
  8. @objc
  9. public protocol XCTLStreamDelegate: NSObjectProtocol {
  10. func stream(_ stream: XCTLStream, appendText text: String)
  11. }
  12. @objcMembers
  13. public class XCTLStream: NSObject {
  14. public init(onAppendBlock: @escaping (String) -> Void) {
  15. self.onAppendBlock = onAppendBlock
  16. super.init()
  17. }
  18. public weak var delegate: XCTLStreamDelegate?
  19. private let onAppendBlock: (String) -> Void
  20. public func append(text: String) {
  21. self.onAppendBlock(text)
  22. self.delegate?.stream(self, appendText: text)
  23. }
  24. }