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 { // 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", }}
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", _ => "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::Green => "Go", TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution" }}
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 { 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 { 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 { Green, Red, Yellow,}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 { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { let status = match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }; status}
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) -> &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 { // 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" }}