Проверка шаблона шины для iOS
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

MeetupId.Generated.swift 2.9KB

před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
před 11 měsíci
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. // ВНИМАНИЕ Сгенерировано автоматом из файла MeetupId.yml
  2. // ВНИМАНИЕ Не менять руками!
  3. import AELog
  4. import BusX
  5. import Combine
  6. import Foundation
  7. import MPAKX
  8. import UIKit
  9. // MARK: - Context
  10. public protocol MeetupIdContext {
  11. var finishLoading: Bool { get }
  12. var isLoading: MPAK.Recent<Bool> { get }
  13. var join: Bool { get }
  14. var textUI: MPAK.Recent<String> { get }
  15. }
  16. // MARK: - Controller
  17. extension MeetupId {
  18. final class Controller: MPAK.Controller<MeetupId.Model> {
  19. init() {
  20. super.init(
  21. MeetupId.Model(),
  22. debugClassName: "MeetupICtrl",
  23. debugLog: { aelog($0) }
  24. )
  25. }
  26. }
  27. // MARK: - Model
  28. public struct Model: MeetupIdContext {
  29. public var finishLoading: Bool = false
  30. public var isLoading: MPAK.Recent<Bool> = .init(false)
  31. public var join: Bool = false
  32. public var textUI: MPAK.Recent<String> = .init("")
  33. }
  34. // MARK: - Service
  35. public final class Service {
  36. let ctrl = Controller()
  37. let world: World
  38. var subscriptions = [AnyCancellable]()
  39. static private(set) weak var singleton: Service?
  40. public init(_ world: World) {
  41. self.world = world
  42. Self.singleton = self
  43. SectionGenerated.setupPlatform(ctrl, self, world)
  44. }
  45. }
  46. // MARK: - World
  47. public struct World {
  48. public init(
  49. ) {
  50. }
  51. }
  52. enum SectionGenerated {
  53. // MARK: - SectionGenerated Service
  54. static func setupPlatform(
  55. _ ctrl: Controller,
  56. _ service: Service,
  57. _ world: World
  58. ) {
  59. // MARK: - SectionGenerated Service Actions
  60. ctrl.m
  61. .sink { v in Bus.send("MeetupId", v) }
  62. .store(in: &service.subscriptions)
  63. // MARK: - SectionGenerated Service Pipes
  64. ctrl.pipe(
  65. dbg: "finishL",
  66. sub: nil,
  67. Bus.events.compactMap { Bus.convertKeyValue(K.finishLoading, $0) }.map { (k: String, v: Bool) in v }.eraseToAnyPublisher(),
  68. { $0.finishLoading = true },
  69. { $0.finishLoading = false }
  70. )
  71. ctrl.pipeValue(
  72. dbg: "isL",
  73. sub: nil,
  74. Bus.events.compactMap { Bus.convertKeyValue(K.isLoading, $0) }.map { (k: String, v: Bool) in v }.eraseToAnyPublisher(),
  75. {
  76. $0.isLoading.value = $1
  77. $0.isLoading.isRecent = true
  78. },
  79. { m, _ in m.isLoading.isRecent = false }
  80. )
  81. ctrl.pipe(
  82. dbg: "join",
  83. sub: nil,
  84. Bus.events.compactMap { Bus.convertKeyValue(K.join, $0) }.map { (k: String, v: Bool) in v }.eraseToAnyPublisher(),
  85. { $0.join = true },
  86. { $0.join = false }
  87. )
  88. ctrl.pipeValue(
  89. dbg: "textUI",
  90. sub: nil,
  91. Bus.events.compactMap { Bus.convertKeyValue(K.textUI, $0) }.map { (k: String, v: String) in v }.eraseToAnyPublisher(),
  92. {
  93. $0.textUI.value = $1
  94. $0.textUI.isRecent = true
  95. },
  96. { m, _ in m.textUI.isRecent = false }
  97. )
  98. }
  99. }
  100. }