Ordered.swift 506 B

12345678910111213141516171819202122232425
  1. //
  2. // Ordered.swift
  3. // Todos
  4. //
  5. // Created by Sam Jaffe on 3/5/26.
  6. //
  7. import Foundation
  8. import SwiftUI
  9. protocol Ordered {
  10. var sortOrder: Int { get set }
  11. }
  12. extension Ordered {
  13. static func less(_ lhs: Ordered, _ rhs: Ordered) -> Bool {
  14. return lhs.sortOrder < rhs.sortOrder
  15. }
  16. @MainActor
  17. static func less<T: Ordered>(_ lhs: Binding<[T]>.Element,
  18. _ rhs: Binding<[T]>.Element) -> Bool {
  19. return lhs.sortOrder.wrappedValue < rhs.sortOrder.wrappedValue
  20. }
  21. }