Skip to content
Snippets Groups Projects
ViewConfigurator.swift 514 B
Newer Older
Dariusz Rybicki's avatar
Dariusz Rybicki committed
import UIKit
import XCTestDynamicOverlay
Dariusz Rybicki's avatar
Dariusz Rybicki committed

public struct ViewConfigurator<View: UIView, Model> {
  public init(configure: @escaping (View, Model) -> Void) {
    self.configure = configure
  }

  public var configure: (View, Model) -> Void

  public func callAsFunction(_ view: View, with model: Model) {
Dariusz Rybicki's avatar
Dariusz Rybicki committed
    configure(view, model)
  }
}

#if DEBUG
extension ViewConfigurator {
  public static func unimplemented() -> ViewConfigurator {
    ViewConfigurator(configure: XCTUnimplemented("\(Self.self)"))
Dariusz Rybicki's avatar
Dariusz Rybicki committed
  }
}
#endif