Skip to content

Instantly share code, notes, and snippets.

public var isHidden: Bool {
return alpha == 0.0
}
if containerView.isHidden
class Car: Vehicle {
// Informer Functions
override func engineStarted() {
super.engineStarted()
handleCarStarted()
}
// Management Functions
private func handleCarStarted() {
extension Car {
// Execution Functions
private func turnExteriorLightsOn() {
leftFrontLight .isOn = true
rightFrontLight.isOn = true
leftBackLight .isOn = true
rightBackLight .isOn = true
}
guard thisStatmentIsTrue else { assertionFailure("❌ Assert at: \(#line)") ; return }
class Car: Vehical {
// *Old* code Represented as the "False" state of the toggle
func drive(to geoLocation: Position) {
}
// *New* code Represented as the "True" state of the toggle
func fly(to geoLocation: Position) {
}
class CarFleet: CarFleetFeatureToggleLogic {
func moveCarsToPosition(cars: [Car], position: Position) {
cars.forEach({ transport(car: $0, to: position) })
}
func refuel(cars: [Car]) {
cars.forEach({ refuel(car: $0, using: fuelToUse) })
}
func refuel(car: Car, using: Fuel) {
// MARK: - Toggle Logic For CarFleet
protocol CarFleetFeatureToggleLogic {
var fuelToUse: Fuel { get }
func transport(car: Car, to position: Position)
}
extension CarFleetFeatureToggleLogic where Self: CarFleet {
/**
Get the fuel to be used on cars.
class CarFleet {
func moveCarsToPosition(cars: [Car], position: Position) {
cars.forEach({
if Toggles.Vehical.carsCanFly.enabled {
fly(to: location)
} else {
drive(to: location)
}
})
}
protocol CellType {
var generator: TableViewCellGeneratorProtocol.Type { get }
var associatedObject: Any? { get }
var cellHeight: CGFloat { get }
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableStructure.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellType = tableStructure[indexPath.row]
let cell = cellType.generator.cell(for: indexPath, inTableView: tableView)
cellType.generator.configure(cell: cell, using: cellType.associatedObject, at: indexPath)
return cell
}