bugger/Sources/Models/BugPriority.swift

30 lines
705 B
Swift

import Foundation
enum BugPriority: String, Codable, Comparable, CaseIterable {
case p0 = "P0"
case p1 = "P1"
case p2 = "P2"
case p3 = "P3"
case unknown
init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
let raw = try container.decode(String.self)
self = BugPriority(rawValue: raw) ?? .unknown
}
static func < (lhs: BugPriority, rhs: BugPriority) -> Bool {
order(lhs) < order(rhs)
}
private static func order(_ priority: BugPriority) -> Int {
switch priority {
case .p0: 0
case .p1: 1
case .p2: 2
case .p3: 3
case .unknown: 4
}
}
}