Files
Juanpe Catalán d8436f79f6 Codebase refactor (#442)
* files reorganization (#432)

* fix podspec

* only include swift files

* Fix broken readme paths (#433)

* update links

* fix french link

* split skeleton debug to public and internal methods (#434)

* Add build phase to execute SwiftLint (#435)

* update tvOS tests

* Refactor Extensions folder (#436)

* Reorganize SkeletonAppearance (#437)

* reorganize helpers and builders folders (#438)

* Refactor flow and multilines (#439)

* Reorganize collections folder (#440)

* reorganize collections folder

* update podspec

* Refactor SkeletonView facade (#441)

* reorganize collections folder

* update podspec

* refactor skeletonview facade

* fix conflict

* update iOS example

* fix github workflows

* update tvOS example project build settings
2021-08-19 14:45:33 +02:00

27 lines
707 B
Swift

// Copyright © 2017 SkeletonView. All rights reserved.
import UIKit
typealias VoidBlock = () -> Void
typealias RecursiveBlock<T> = (T) -> Void
protocol IterableElement {}
extension UIView: IterableElement {}
extension CALayer: IterableElement {}
// MARK: Recursive
protocol Recursive {
associatedtype Element: IterableElement
func recursiveSearch(leafBlock: VoidBlock, recursiveBlock: RecursiveBlock<Element>)
}
extension Array: Recursive where Element: IterableElement {
func recursiveSearch(leafBlock: VoidBlock, recursiveBlock: RecursiveBlock<Element>) {
guard !isEmpty else {
leafBlock()
return
}
forEach { recursiveBlock($0) }
}
}