button_handlers/
button_handlers.rs

1extern crate ev3dev_lang_rust;
2
3use ev3dev_lang_rust::{Button, Ev3Result};
4
5fn main() -> Ev3Result<()> {
6    let mut button = Button::new()?;
7
8    button.set_change_handler(|pressed_buttons| println!("Pressed buttons: {:?}", pressed_buttons));
9
10    button.set_up_handler(|is_pressed| println!("Button 'up' is pressed: {}", is_pressed));
11    button.set_down_handler(|is_pressed| println!("Button 'down' is pressed: {}", is_pressed));
12    button.set_left_handler(|is_pressed| println!("Button 'left' is pressed: {}", is_pressed));
13    button.set_right_handler(|is_pressed| println!("Button 'right' is pressed: {}", is_pressed));
14    button.set_enter_handler(|is_pressed| println!("Button 'enter' is pressed: {}", is_pressed));
15    button.set_backspace_handler(|is_pressed| {
16        println!("Button 'backspace' is pressed: {}", is_pressed)
17    });
18    button.set_backspace_handler(|is_pressed| {
19        println!("Button 'backspace' is pressed: {}", is_pressed)
20    });
21
22    loop {
23        button.process();
24        std::thread::sleep(std::time::Duration::from_millis(100));
25    }
26}