1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use super::*;
#[derive(Clone, Copy, Debug, Default)]
pub struct SetupPacket {
pub request_type: u8,
pub request: u8,
pub value: u16,
pub index: u16,
pub length: u16,
}
impl SetupPacket {
pub fn parse(setup: &[u8; 8]) -> SetupPacket {
SetupPacket {
request_type: setup[0],
request: setup[1],
value: (setup[3] as u16) << 8 | (setup[2] as u16),
index: (setup[5] as u16) << 8 | (setup[4] as u16),
length: (setup[7] as u16) << 8 | (setup[6] as u16),
}
}
}