This file contains 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 ConditionalArrayFilter <Element> { | |
let condition: (Element) -> Bool // the condition to meet | |
private var _array = Array<Element>() | |
var array: Array<Element> { | |
get { return _array } | |
} | |
init(condition: (Element) -> Bool) { self.condition = condition } | |
} | |
private extension ConditionalArrayFilter { |
This file contains 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 | |
extension Array { | |
mutating func prepend(newElement: Element) { | |
self.insert(newElement, atIndex: 0) | |
} | |
} |
This file contains 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
func removeAllGestureRecognizers() { | |
gestureRecognizers?.forEach(self.removeGestureRecognizer) | |
} |
This file contains 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 RealmSwift | |
extension Realm { | |
func sync<T: Object>(_ obj: T) { | |
var beganWriteTransaction = false | |
if !isInWriteTransaction { | |
beganWriteTransaction = true | |
beginWrite() | |
} | |
This file contains 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 | |
func setIfNotNil<T>(_ obj: inout T?, _ other: T?) { | |
guard other != nil else { return } | |
obj = other | |
} |
This file contains 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
@propertyWrapper | |
class Lazy<T> { | |
fileprivate var loader: (()->T) | |
fileprivate var _value: T? | |
var projectedValue: Lazy<T> { return self } | |
var wrappedValue: T { | |
_value = _value ?? loader() | |
return _value! | |
} |
This file contains 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 | |
public class BidirectionalMap<Left: Hashable, Right: Hashable> { | |
private var leftToRightMapping = [Left : Right]() | |
private var rightToLeftMapping = [Right : Left]() | |
public subscript(left: Left) -> Right? { | |
get { return leftToRightMapping[left] } | |
set (newValue) { |
This file contains 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 | |
class Weak<T> { | |
private weak var _value: AnyObject? | |
var value: T? { return _value as? T } | |
init(_ value: T) { | |
_value = value as AnyObject | |
} | |
} |
This file contains 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
func highestKey<T, N: Comparable>(of dictionary: Dictionary<T, N>) -> T? { | |
var highestKey: T? | |
var highestValue: N? | |
for key in dictionary.keys { | |
let value = dictionary[key] | |
if highestValue == nil || value! > highestValue! { | |
highestKey = key | |
highestValue = value | |
} |
This file contains 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 VSpacer: View { | |
private let spacing: CGFloat | |
public init(_ spacing: CGFloat) { | |
self.spacing = spacing | |
} | |
public var body: some View { | |
Spacer() | |
.frame(idealHeight: spacing, maxHeight: spacing) |
OlderNewer