standard_card 1.4.0

A Lightweight Library for Efficient Card Representation
Documentation
use crate::card::get_rank;

/// Convert the card to readable rank
///
/// # Arguments
/// * `card` - The card to convert
///
/// # Example
/// ```
/// use standard_card::card::get_rank_string;
///
/// let card = get_rank_string(268471337);
/// assert_eq!("A", card);
/// ```
pub fn get_rank_string(card: i32) -> String {
    let ranks: [&str; 13] = [
        "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A",
    ];
    let rank: Option<&&str> = ranks.get(get_rank(card) as usize);

    if let Some(rank) = rank {
        return format!("{}", rank);
    }

    return "".to_string();
}

#[cfg(test)]
mod get_rank_string {
    use crate::card::get_rank_string;

    #[test]
    fn ace_of_clubs() {
        // Act
        let actual = get_rank_string(268471337);

        // Assert
        assert_eq!(actual, "A");
    }
}