This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extension DispatchQueue { | |
| /// Helper method to use when reading from a resource | |
| /// that is being isolated by this queue. | |
| /// | |
| /// Using this method retriving a value like this: | |
| /// ``` | |
| /// var result: T? | |
| /// queue.sync { | |
| /// result = resource["key"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Throttle { | |
| let delay: TimeInterval | |
| private var workItem: DispatchWorkItem? | |
| private let queue: DispatchQueue | |
| init(delay: TimeInterval, queue: DispatchQueue = .main) { | |
| self.delay = delay | |
| self.queue = queue | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import UIKit | |
| import PlaygroundSupport | |
| PlaygroundPage.current.needsIndefiniteExecution = true | |
| extension Comparable { | |
| /// Clamp the value between `low` and `high` | |
| func clamp(_ low: Self, _ high: Self) -> Self { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| struct Car { | |
| let made: String | |
| } | |
| func compareDumps(lhs: Any, rhs: Any) -> Bool { | |
| var (lhsDump, rhsDump) = (String(), String()) | |
| dump(lhs, to: &lhsDump) | |
| dump(rhs, to: &rhsDump) | |
| return lhsDump == rhsDump | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import Foundation | |
| // Defining this breaks the behaviour of the existing '||' operator in some cases | |
| public func ||(lhs: NSPredicate, rhs: NSPredicate) -> NSPredicate { | |
| return NSCompoundPredicate(orPredicateWithSubpredicates: [lhs, rhs]) | |
| } | |
| func foo() { | |
| let cards = [String: [String]]() | |
| let startingContactIndex: UInt = 3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public extension UIView { | |
| static var debugColors: [UIColor] { | |
| return [ | |
| .red, | |
| .green, | |
| .blue, | |
| .cyan, | |
| .yellow, | |
| .magenta, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extension Equatable { | |
| func oneOf(other: Self...) -> Bool { | |
| return other.contains(self) | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import UIKit | |
| /// Object observing keyboard changes and passing a `KeyboardChangeInfo` to notify about changes. | |
| final class KeyboardObserver: NSObject { | |
| typealias KeyboardChangeClosure = (KeyboardChangeInfo) -> Void | |
| let changeClosure: KeyboardChangeClosure | |
| // MARK: - Private |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import Foundation | |
| struct Change<T>: CustomDebugStringConvertible { | |
| let oldValue, newValue: T? | |
| var debugDescription: String { | |
| let prettyString: T? -> String = { return $0 != nil ? "\($0!)" : ".None" } | |
| return "ChangeType:\n\tOld value: \(prettyString(oldValue))\n\tNew value: \(prettyString(newValue))" | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public struct CountedSet<Element : Hashable> : Hashable, CollectionType, ArrayLiteralConvertible { | |
| public typealias Index = SetIndex<Element> | |
| public typealias Generator = SetGenerator<Element> | |
| private var backingSet = Set<Element>() | |
| private var countMapping = [Int: UInt]() | |
| private var debugCountMapping: [Element : UInt] { | |
| var result = [Element : UInt]() | |
| backingSet.forEach { element in |