Exercício: Eventos de Elevador
Vamos criar uma estrutura de dados para representar um evento em um sistema de controle de elevador. Cabe a você definir os tipos e funções para construir vários eventos. Use #[derive(Debug)]
para permitir que os tipos sejam formatados com {:?}
.
Este exercício requer apenas a criação e o preenchimento de estruturas de dados para que o main
seja executado sem erros. A próxima parte do curso abordará a obtenção de dados dessas estruturas.
#[derive(Debug)] /// Um evento no sistema de elevador ao qual o controlador deve reagir. enum Event { // TODO: adicionar variantes necessárias } /// Uma direção da viagem. #[derive(Debug)] enum Direction { Up, Down, } /// O elevador chegou no andar dado. fn car_arrived(floor: i32) -> Event { todo!() } /// As portas do elevador se abriram. fn car_door_opened() -> Event { todo!() } /// As portas do elevador se fecharam. fn car_door_closed() -> Event { todo!() } /// Um botão direcional foi pressionado em um saguão de elevador no andar dado. fn lobby_call_button_pressed(floor: i32, dir: Direction) -> Event { todo!() } /// Um botão de andar foi pressionado no elevador. fn car_floor_button_pressed(floor: i32) -> Event { todo!() } fn main() { println!( "Um passageiro do térreo pressionou o botão para subir: {:?}", lobby_call_button_pressed(0, Direction::Up) ); println!("O elevador chegou no térreo: {:?}", car_arrived(0)); println!("A porta do elevador se abriu: {:?}", car_door_opened()); println!( "Um passageiro pressionou o botão do 3º andar: {:?}", car_floor_button_pressed(3) ); println!("A porta do elevador se fechou: {:?}", car_door_closed()); println!("O elevador chegou no 3º andar: {:?}", car_arrived(3)); }