Comparable.swift 535 B

123456789101112131415161718192021222324
  1. //
  2. // Comparable.swift
  3. // LoopKit
  4. //
  5. // Created by Michael Pangburn on 11/20/18.
  6. // Copyright © 2018 LoopKit Authors. All rights reserved.
  7. //
  8. extension Comparable {
  9. func clamped(to range: ClosedRange<Self>) -> Self {
  10. if self < range.lowerBound {
  11. return range.lowerBound
  12. } else if self > range.upperBound {
  13. return range.upperBound
  14. } else {
  15. return self
  16. }
  17. }
  18. mutating func clamp(to range: ClosedRange<Self>) {
  19. self = clamped(to: range)
  20. }
  21. }