Enums in Rust can combine unit, tuple and named field variants to represent a wide range of concepts. This challenge uses enums to represent playing cards in a card game.
You will implement a Card enum that can represent either:
King, Queen, Jack), which is a unit variant.7 of Hearts), which is a tuple variant.Create an enum Card with the following variants:
King, Queen, Jack (unit variants for face cards).Numbered(u8, String) representing a numbered card with its value and suit.Write a function card_description that takes a Card and returns a description of the card:
King, return "King".Queen, return "Queen".Jack, return "Jack".Numbered(value, suit), return "{value} of {suit}", e.g., "7 of Hearts".match statement to handle each enum variant.format! macro for the Numbered variant.pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),    }pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}"),        _ => "Jack".to_string()            }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit) => format!("{value} of {suit}")    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8,String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value,suit) => format!("{} of {}", value, suit),    }}pub enum Card {    // Define the Card variants here    King, Queen, Jack, Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King =>"King".to_string(),        Card::Queen =>"Queen".to_string(),        Card::Jack =>"Jack".to_string(),        Card::Numbered(value, suit)=>format!("{value} of {suit}").to_string()    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".into(),        Card::Queen => "Queen".into(),        Card::Jack => "Jack".into(),        Card::Numbered(value, suit) => format!("{value} of {suit}")    }}pub enum Card {    // Define the Card variants her     King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit)    }   }pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit),    }}pub enum Card {    // Define the Card variants here    King,     Queen,     Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(num,suit) => {            String::from(num.to_string() + " of " + suit)        },    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => {"King".to_string()}        Card::Queen => {"Queen".to_string()}        Card::Jack => {"Jack".to_string()}        Card::Numbered(value, suit) => {format!("{value} of {suit}")}    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}")    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, unit) => format!("{} of {}", value, unit)    }}pub enum Card {    King,    Jack,    Queen,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Jack => "Jack".to_string(),        Card::Queen => "Queen".to_string(),        Card::Numbered(i, s) => format!("{} of {}", i, s),    }}pub enum Card {    Numbered(u8, String),    King,    Queen,    Jack,}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::Numbered(number, suit) => format!("{} of {}", number, suit),        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    match card{        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit)    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    match card{        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit)    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}"),    }}pub enum Card {    // Define the Card variants here    King, Queen, Jack, Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit) => format!("{} of {}", value, suit),    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8,String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(num,suit) => format!("{} of {}",num,suit)    }}pub enum Card {    King, Queen, Jack, Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}").to_string(),    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit) => format!("{value} of {suit}"),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}"),    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit),    }}pub enum Card {    // Define the Card variants here    King ,Queen ,Jack ,Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{    Card::King => return "King".to_string(),    Card::Queen => return "Queen".to_string(),    Card::Jack => return "Jack".to_string(),    Card::Numbered(value, suit) => return format!("{value} of {suit}")    }}pub enum Card {    King,    Queen,    Jack,    Numbered(usize, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".into(),        Card::Queen => "Queen".into(),        Card::Jack => "Jack".into(),        Card::Numbered(value, suit) => format!("{value} of {suit}"),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    match card{        Card::King=>"King".to_string(),        Card::Queen=>"Queen".to_string(),        Card::Jack=>"Jack".to_string(),        Card::Numbered(value, suit)=>format!("{value} of {suit}").to_string()    }}pub enum Card {    King,    Queen,    Jack,    Ace,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".into(),        Card::Queen => "Queen".into(),        Card::Jack => "Jack".into(),        Card::Ace => "Ace".into(),        Card::Numbered(value, suit) => {            format!("{value} of {suit}")        }    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit).to_string(),     }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)    // Define the Card variants here}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit).to_string(),    }    // Your code here...}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => {            format!("{value} of {suit}")        }    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit) => format!("{} of {}", value, suit),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".into(),        Card::Queen => "Queen".into(),        Card::Jack => "Jack".into(),        Card::Numbered(n, suit) => format!("{n} of {suit}"),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit).to_string(),    }}pub enum Card {    King, Queen, Jack, Numbered(u8, String)    // Define the Card variants here}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit).to_string()    }}pub enum Card {    King, Queen, Jack, Numbered(u8, String)    // Define the Card variants here}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit).to_string()    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit)=> format!("{} of {}",value,suit)    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(i32, String)}use Card::{King, Queen, Jack, Numbered};pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        King => "King".to_string(),        Queen => "Queen".to_string(),        Jack => "Jack".to_string(),        Numbered(val, suit) => format!("{val} of {suit}")    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit) => format!("{} of {}",value,suit).to_owned(),    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8,String),}pub fn card_description(card: &Card) -> String {    match card{        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value,suit) => format!("{} of {}",value,suit).to_string(),    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered( u8, String )}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}").to_string()    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String)    // Define the Card variants here}pub fn card_description(card: &Card) -> String {    match card {        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit) =>  value.to_string() + &String::from(" of ") + suit    }    // Your code here...}pub enum Card {    // Define the Card variants here    King, Queen, Jack, Numbered(u8, String)}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}").to_string()    }}pub enum Card {    // Define the Card variants here    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card {        Card::King => "King".into(),        Card::Queen => "Queen".into(),        Card::Jack => "Jack".into(),        Card::Numbered(value, suit) => format!("{value} of {suit}")    }}pub enum Card {    // Define the Card variants here    King, Queen, Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{        Card::King => String::from("King"),        Card::Queen => String::from("Queen"),        Card::Jack => String::from("Jack"),        Card::Numbered(value, suit) => format!("{} of {}",value,suit),    }}pub enum Card {    // Define the Card variants here    King, Queen, Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{        Card::King => return "King".to_string(),        Card::Queen => return "Queen".to_string(),        Card::Jack => return "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}",value,suit),    }}pub enum Card {    // Define the Card variants here    King, Queen, Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    // Your code here...    match card{        Card::King => return "King".to_string(),        Card::Queen => return "Queen".to_string(),        Card::Jack => return "Jack".to_string(),        Card::Numbered(value, suit) => format!("{value} of {suit}"),    }}pub enum Card {    King,    Queen,    Jack,    Numbered (u8,String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(value, suit) => format!("{} of {}", value, suit)    }}pub enum Card {    King,    Queen,    Jack,    Numbered(u8, String),}pub fn card_description(card: &Card) -> String {    match card {        Card::King => "King".to_string(),        Card::Queen => "Queen".to_string(),        Card::Jack => "Jack".to_string(),        Card::Numbered(i,word) => format!("{i} of {word}").to_string(),    }}