pub trait GamepadMethods<D>{
// Required methods
fn Id(&self) -> DOMString;
fn Index(&self) -> i32;
fn Connected(&self) -> bool;
fn Timestamp(&self) -> Finite<f64>;
fn Mapping(&self) -> DOMString;
fn Axes(&self, cx: JSContext) -> TypedArray<Float64, *mut JSObject>;
fn Buttons(&self) -> Root<Dom<<D as DomTypes>::GamepadButtonList>>;
fn VibrationActuator(
&self,
) -> Root<Dom<<D as DomTypes>::GamepadHapticActuator>>;
fn Hand(&self) -> GamepadHand;
fn GetPose(&self) -> Option<Root<Dom<<D as DomTypes>::GamepadPose>>>;
}