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)); }