use super::integer::Time; #[binrw::binrw] #[brw(little)] pub enum EncodedMouseDelta{ //X did not move Y has 1 byte, time has 2 bytes X0Y1T2{ y:i8, t:u16, }, X1Y1T2 } ///TODO: delta delta encoding lol #[binrw::binrw] #[brw(little)] pub struct MouseState{ pub pos:[i32;2], pub time:Time, } impl Into<strafesnet_common::mouse::MouseState> for MouseState{ fn into(self)->strafesnet_common::mouse::MouseState{ strafesnet_common::mouse::MouseState{ pos:self.pos.into(), time:strafesnet_common::integer::Time::raw(self.time), } } } impl From<strafesnet_common::mouse::MouseState> for MouseState{ fn from(value:strafesnet_common::mouse::MouseState)->Self{ Self{ pos:value.pos.to_array(), time:value.time.get(), } } }