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"