文件
check-ios-bus/Modules/MeetupIdX/src/MeetupId.Generated.swift
Михаил Капелько 1afcae37a7 d
2023-12-29 13:50:08 +03:00

155 行
3.2 KiB
Swift

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

// ВНИМАНИЕ Сгенерировано автоматом из файла MeetupId.yml
// ВНИМАНИЕ Не менять руками!
import AELog
import BusX
import Combine
import CordX
import Foundation
import MPAKX
import UIKit
// MARK: - Context
public protocol MeetupIdContext {
var finishLoading: Bool { get }
var isLoading: MPAK.Recent<Bool> { get }
var join: Bool { get }
var textUI: MPAK.Recent<String> { get }
}
// MARK: - Controller
extension MeetupId {
final class Controller: MPAK.Controller<MeetupId.Model> {
init() {
super.init(
MeetupId.Model(),
debugClassName: "MeetupICtrl",
debugLog: { aelog($0) }
)
}
}
// MARK: - Model
public struct Model: MeetupIdContext {
public var finishLoading: Bool = false
public var isLoading: MPAK.Recent<Bool> = .init(false)
public var join: Bool = false
public var textUI: MPAK.Recent<String> = .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 join = PassthroughSubject<Void, Never>()
let textUI = PassthroughSubject<String, Never>()
public init(
) {
}
}
enum SectionGenerated {
// MARK: - SectionGenerated Service
static func setupPlatform(
_ ctrl: Controller,
_ service: Service,
_ world: World
) {
// MARK: - SectionGenerated Service Actions
ctrl.m
.sink { v in Bus.send("MeetupId", v) }
.store(in: &service.subscriptions)
ctrl.m
.compactMap { shouldResetLoading($0) }
.sink { v in Bus.send(K.isLoading, v) }
.store(in: &service.subscriptions)
// MARK: - SectionGenerated Service Pipes
ctrl.pipe(
dbg: "finishL",
sub: nil,
Bus.events.compactMap { Bus.convertKeyValue(K.finishLoading, $0) }.map { (k: String, v: Void) in v }.eraseToAnyPublisher(),
{ $0.finishLoading = true },
{ $0.finishLoading = false }
)
ctrl.pipeValue(
dbg: "isL",
sub: nil,
Bus.events.compactMap { Bus.convertKeyValue(K.isLoading, $0) }.map { (k: String, v: Bool) in v }.eraseToAnyPublisher(),
{
$0.isLoading.value = $1
$0.isLoading.isRecent = true
},
{ m, _ in m.isLoading.isRecent = false }
)
ctrl.pipe(
dbg: "join",
sub: nil,
Bus.events.compactMap { Bus.convertKeyValue(K.join, $0) }.map { (k: String, v: Void) in v }.eraseToAnyPublisher(),
{ $0.join = true },
{ $0.join = false }
)
ctrl.pipeValue(
dbg: "textUI",
sub: nil,
Bus.events.compactMap { Bus.convertKeyValue(K.textUI, $0) }.map { (k: String, v: String) in v }.eraseToAnyPublisher(),
{
$0.textUI.value = $1
$0.textUI.isRecent = true
},
{ m, _ in m.textUI.isRecent = false }
)
}
}
}