Cached State support for generic gamepads
I have a gamepad that doesn't conform to the SDL mapping schema, which means i cannot use the Button nor Axis bindings as they just don't map.
This produces a unique challenge, while im able to handle the event-driven iterative mode, I have to track my gamepad's state in my downstream code rather than being able to utilize gilrs's tracking.
The Gamepad::button_data, ::axis_data interface requires a Button, Axis enumeration respectively, which cannot be extended in downstreams.
The GamepadState::button_data, axis_data interfaces require a Code object, which is apparently private and cannot be constructed in downstreams. I know precisely what Code(Evcode(EvCode {kind, code})) I would need to codegen for my device, but am unable due to all of these objects not having public constructors.
The optimal solution to this would provide an interface to access the cached state of an arbitrary axis, button. something to the effect of
fn get_input(&self, kind:u32, code:u32) -> Option<EventType>
Where None would be returned if gilrs hasn't seen of that input yet, an EventType otherwise as per the GamepadState interfaces.