// ВНИМАНИЕ Сгенерировано автоматом из файла MeetupId.yml // ВНИМАНИЕ Не менять руками! import AELog import BusX import Combine import CordX import Foundation import MPAKX import UIKit // MARK: - Context public protocol MeetupIdContext { var textApp: MPAK.Recent { get } var textUI: MPAK.Recent { get } } // MARK: - Controller extension MeetupId { final class Controller: MPAK.Controller { init() { super.init( MeetupId.Model(), debugClassName: "MeetupICtrl", debugLog: { aelog($0) } ) } } // MARK: - Model public struct Model: MeetupIdContext { public var textApp: MPAK.Recent = .init("") public var textUI: MPAK.Recent = .init("") } // MARK: - Service public final class Service { let ctrl = Controller() let world: World var subscriptions = [AnyCancellable]() static private(set) weak var singleton: Service? public init(_ world: World) { self.world = world Self.singleton = self SectionGenerated.setupPlatform(ctrl, self, world) } } // MARK: - World public struct World { let textApp = PassthroughSubject() let textUI = PassthroughSubject() public init( ) { } } enum SectionGenerated { // MARK: - SectionGenerated Service static func setupPlatform( _ ctrl: Controller, _ service: Service, _ world: World ) { // MARK: - SectionGenerated Service Actions // MARK: - SectionGenerated Service Pipes ctrl.pipeValue( dbg: "textA", sub: nil, Bus.events.compactMap { Bus.convertKeyValue(K.meetupIdTextApp.rawValue, $0) }.map { (k: String, v: String) in v }.eraseToAnyPublisher().eraseToAnyPublisher(), { $0.textApp.value = $1 $0.textApp.isRecent = true }, { m, _ in m.textApp.isRecent = false } ) ctrl.pipeValue( dbg: "textUI", sub: nil, Bus.events.compactMap { Bus.convertKeyValue(K.meetupIdTextUI.rawValue, $0) }.map { (k: String, v: String) in v }.eraseToAnyPublisher().eraseToAnyPublisher(), { $0.textUI.value = $1 $0.textUI.isRecent = true }, { m, _ in m.textUI.isRecent = false } ) } } }