Use WlHeader struct instead of reading bytes from buffer every time
This commit is contained in:
19
src/main.rs
19
src/main.rs
@@ -6,6 +6,12 @@ struct WlState {
|
|||||||
registry_id: u32,
|
registry_id: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct WlHeader {
|
||||||
|
object: u32,
|
||||||
|
opcode: u16,
|
||||||
|
size: u16
|
||||||
|
}
|
||||||
|
|
||||||
fn wl_connect() -> Result<UnixStream, Box<dyn Error>> {
|
fn wl_connect() -> Result<UnixStream, Box<dyn Error>> {
|
||||||
let wl_sock_path: String = format!(
|
let wl_sock_path: String = format!(
|
||||||
"{}/{}",
|
"{}/{}",
|
||||||
@@ -38,7 +44,7 @@ fn wl_display_get_registry(wl_state: &mut WlState) -> Result<(), Box<dyn Error>>
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn wl_registry_global(size: u16, wl_sock: &mut UnixStream) {
|
fn wl_registry_global(header: &WlHeader, wl_sock: &mut UnixStream) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,12 +68,17 @@ fn main() ->Result<(), Box<dyn Error>> {
|
|||||||
|
|
||||||
let mut header = [0u8; 8];
|
let mut header = [0u8; 8];
|
||||||
wl_state.socket.read_exact(&mut header)?;
|
wl_state.socket.read_exact(&mut header)?;
|
||||||
|
let header = WlHeader {
|
||||||
|
object: u32::from_ne_bytes(header[0..4].try_into().unwrap()),
|
||||||
|
opcode: u16::from_ne_bytes(header[4..6].try_into().unwrap()),
|
||||||
|
size: u16::from_ne_bytes(header[6..8].try_into().unwrap())
|
||||||
|
};
|
||||||
|
|
||||||
println!(
|
println!(
|
||||||
"Object: {}\nOpcode: {}\nSize: {}",
|
"Object: {}\nOpcode: {}\nSize: {}",
|
||||||
u32::from_ne_bytes(header[0..4].try_into().unwrap()),
|
header.object,
|
||||||
u16::from_ne_bytes(header[4..6].try_into().unwrap()),
|
header.opcode,
|
||||||
u16::from_ne_bytes(header[6..8].try_into().unwrap())
|
header.size
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
Reference in New Issue
Block a user