Enums are a fundamental feature in Rust that let you define a type that can be one of several distinct variants. Enums make it easier to represent a set of related states or options cleanly and effectively.
In this challenge, you will implement a simple TrafficLight
enum to represent the states of a traffic light: Red
, Yellow
, and Green
. Each variant will be a unit struct with no associated data.
Create an enum TrafficLight
with three variants:
Red
representing the red light.Yellow
representing the yellow light.Green
representing the green light.Write a function light_action
that takes a TrafficLight
and returns a string describing the action associated with the light.
Red
, return "Stop"
.Yellow
, return "Caution"
.Green
, return "Go"
.match
statement to handle each enum variant.pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { let output:&str; match light{ TrafficLight::Red => output = "Stop", TrafficLight::Yellow => output = "Caution", TrafficLight::Green => output = "Go", } return output;}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light{ TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light{ TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
#[derive(Eq, PartialEq)]pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... if *light == TrafficLight::Red { return "Stop" } else if *light == TrafficLight::Yellow { return "Caution" } return "Go"}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light{ TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" , }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green, }pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
#[derive(PartialEq)]pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { if *light == TrafficLight::Red { return "Stop"; } else if *light == TrafficLight::Yellow { return "Caution"; } else { return "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Green, Yellow}pub fn light_action(light: &TrafficLight) -> &'static str { match light{ TrafficLight::Red => {"Stop"} TrafficLight::Yellow => {"Caution"} TrafficLight::Green => {"Go"} }}
pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... return match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" };}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... return match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", };}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match *light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light{ TrafficLight::Red => return "Stop", TrafficLight::Yellow => return "Caution", TrafficLight::Green => return "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... let a: &'static str = match light{ TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }; a}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light{ TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
#[derive(PartialEq)]pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... if *light == TrafficLight::Red { "Stop".as_ref() } else if *light == TrafficLight::Yellow { "Caution".as_ref() } else { "Go".as_ref() }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => return "Stop", TrafficLight::Yellow => return "Caution", TrafficLight::Green => return "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light{ TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go" }}
pub enum TrafficLight { Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light{ TrafficLight::Red=> "Stop", TrafficLight::Yellow=>"Caution", TrafficLight::Green=> "Go", }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}