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 { // 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 => {return "Stop";} TrafficLight::Yellow => {return "Caution";} TrafficLight::Green => {return "Go";} _ => {return ""} }}
pub enum TrafficLight { // Define enum variants here Red, Yellow, Green}pub fn light_action(light: &TrafficLight) -> &'static str { match light { TrafficLight::Red => "Stop", TrafficLight::Green => "Go", TrafficLight::Yellow => "Caution" }}
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) -> &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 { // 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... 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 { // 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 => 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 { // 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 { 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, // Define enum variants here}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 { // Define enum variants here Red, Yellow, Green,}pub fn light_action(light: &TrafficLight) -> &'static str { // Your code here... match light { TrafficLight::Red => "Stop", // This is a string literal, which has a `'static` lifetime TrafficLight::Yellow => "Caution", // This is also a string literal with a `'static` lifetime TrafficLight::Green => "Go", // Again, a string literal }}
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 => 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 { 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 { // 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 => 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 { match light { TrafficLight::Red => "Stop", TrafficLight::Yellow => "Caution", TrafficLight::Green => "Go", }}
struct Red;struct Yellow;struct Green;pub enum TrafficLight { Red, Yellow, Green, // Define enum variants here}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, Green, Yellow,}pub fn light_action(light: &TrafficLight) -> &'static str { 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 { 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", }}