Skip to main content

StickInput

Struct StickInput 

Source
pub struct StickInput { /* private fields */ }
Expand description

A single encoded analog stick input entry from a Mario Kart Wii ghost file.

Each entry records the stick position and for how many consecutive frames it was held. Both axes are encoded in a single byte as 4-bit unsigned values (0–14), then shifted to the signed range −7 to +7 for intuitive use.

Negative x values represent left; positive values represent right. Negative y values represent down; positive values represent up.

Implementations§

Source§

impl StickInput

Source

pub fn x(&self) -> i8

Returns the horizontal axis position (−7 to +7).

Source

pub fn y(&self) -> i8

Returns the vertical axis position (−7 to +7).

Source

pub fn frame_duration(&self) -> u32

Returns the number of frames this stick position was held.

Source

pub fn set_frame_duration(&mut self, frame_duration: u32)

Sets the number of frames this stick position was held.

Trait Implementations§

Source§

impl Debug for StickInput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq<[i8; 2]> for StickInput

Compares a StickInput against a [i8; 2] array of [x, y].

Source§

fn eq(&self, other: &[i8; 2]) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq for StickInput

Two StickInput values are equal if their x and y positions match, regardless of frame duration.

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TryFrom<&[u8]> for StickInput

Parses a StickInput from a 2-byte slice.

§Errors

Returns StickInputError::InvalidStickInput if either axis value exceeds 14.

Source§

type Error = StickInputError

The type returned in the event of a conversion error.
Source§

fn try_from(value: &[u8]) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.