enum Rank: Int { case ace = 1, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king } let cards: [Rank] = [.five, .queen, .ace, .eight, .jack] let cancellable = cards.publisher .min(by: { return $0.rawValue < $1.rawValue }) .sink { print("\($0)") } // Prints: "ace"