تمرين: أحداث المصعد
سنقوم بإنشاء هيكل بيانات (data structure) لتمثيل حدث في نظام التحكم في المصعد. الأمر متروك لك لتحديد الأنواع (types) والدوال (functions) لبناء الأحداث المختلفة. استخدم #[derive(Debug)]
للسماح بتنسيق الأنواع باستخدام {:?}
.
يتطلب هذا التمرين فقط إنشاء وملء هياكل البيانات (data structures) بحيث يتم تشغيل main
بدون أخطاء. سيغطي الجزء التالي من الدورة استخراج البيانات من هذه الهياكل.
#[derive(Debug)] /// An event in the elevator system that the controller must react to. enum Event { // TODO: add required variants } /// A direction of travel. #[derive(Debug)] enum Direction { Up, Down, } /// The car has arrived on the given floor. fn car_arrived(floor: i32) -> Event { todo!() } /// The car doors have opened. fn car_door_opened() -> Event { todo!() } /// The car doors have closed. fn car_door_closed() -> Event { todo!() } /// A directional button was pressed in an elevator lobby on the given floor. fn lobby_call_button_pressed(floor: i32, dir: Direction) -> Event { todo!() } /// A floor button was pressed in the elevator car. fn car_floor_button_pressed(floor: i32) -> Event { todo!() } fn main() { println!( "A ground floor passenger has pressed the up button: {:?}", lobby_call_button_pressed(0, Direction::Up) ); println!("The car has arrived on the ground floor: {:?}", car_arrived(0)); println!("The car door opened: {:?}", car_door_opened()); println!( "A passenger has pressed the 3rd floor button: {:?}", car_floor_button_pressed(3) ); println!("The car door closed: {:?}", car_door_closed()); println!("The car has arrived on the 3rd floor: {:?}", car_arrived(3)); }