import Foundation enum Rank: Int, CaseIterable, Codable, Comparable, Sendable { case ace = 1 case two, three, four, five, six, seven case eight, nine, ten, jack, queen, king static func < (lhs: Rank, rhs: Rank) -> Bool { lhs.rawValue < rhs.rawValue } var displayName: String { switch self { case .ace: "Ace" case .two: "2" case .three: "3" case .four: "4" case .five: "5" case .six: "6" case .seven: "7" case .eight: "8" case .nine: "9" case .ten: "10" case .jack: "Jack" case .queen: "Queen" case .king: "King" } } var shortName: String { switch self { case .ace: "A" case .jack: "J" case .queen: "Q" case .king: "K" default: "\(rawValue)" } } /// File name component for asset lookup var fileName: String { switch self { case .ace: "ace" case .two: "2" case .three: "3" case .four: "4" case .five: "5" case .six: "6" case .seven: "7" case .eight: "8" case .nine: "9" case .ten: "10" case .jack: "jack" case .queen: "queen" case .king: "king" } } }