MaxValue<T>
// 2020.10.15:
import SwiftUI
// 📦 MaxValue<T: FloatingPoint>
public struct MaxValue<T: FloatingPoint>: PreferenceKey {
// value type
public typealias Value = T?
// default value (nil == not set)
public static var defaultValue: Value { nil }
// ⭐️ choose max value
public static func reduce(value: inout Value, nextValue: () -> Value) {
// ⭐️ [T?] --(compactMap)--> [T] --(max)--> T?
value = [value, nextValue()].compactMap{ $0 }.max()
}
}
Last updated
Was this helpful?