virtio_input_decoder/
mouse.rs1pub struct MouseDecoder();
2
3#[derive(PartialEq, Debug, Clone, Copy)]
4pub enum Mouse {
5 ScrollUp,
6 ScrollDown,
7 X(usize),
8 Y(usize),
9}
10
11impl MouseDecoder {
12 pub fn decode(code : usize, value : usize)->Result<Mouse, ()> {
13 if code == 8 && value == 1 || code == 0x151 && value == 0 {
14 Ok(Mouse::ScrollUp)
15 }
16 else if code == 8 && value == 0xffffffff || code == 0x150 && value == 0 {
17 Ok(Mouse::ScrollDown)
18 }
19 else if code == 0 {
20 Ok(Mouse::X(value))
21 }
22 else if code == 1 {
23 Ok(Mouse::Y(value))
24 }
25 else {
26 Err(())
27 }
28 }
29}