embassy-usb-host

Crates

git

Versions

default

Flavors

KeyboardReport

Struct KeyboardReport 

Source
pub struct KeyboardReport {
    pub modifiers: u8,
    pub keycodes: [u8; 6],
}
Expand description

Decoded keyboard report (USB HID boot protocol, 8 bytes).

All standard USB keyboards support this layout when placed in boot protocol mode via HidHost::set_protocol with PROTOCOL_BOOT.

Fields§

§modifiers: u8

Modifier keys bitmask.

Bit 0: Left Ctrl | Bit 1: Left Shift | Bit 2: Left Alt | Bit 3: Left GUI Bit 4: Right Ctrl | Bit 5: Right Shift | Bit 6: Right Alt | Bit 7: Right GUI

§keycodes: [u8; 6]

Up to 6 simultaneously pressed key codes (HID usage page 0x07). A value of 0x00 means “no key”; 0x01 means “rollover error”.

Implementations§

Source§

impl KeyboardReport

Source

pub fn parse(buf: &[u8]) -> Option<Self>

Parse a boot-protocol keyboard report from an 8-byte buffer. Returns None if the buffer is shorter than 8 bytes.

Source

pub fn is_pressed(&self, keycode: u8) -> bool

Returns true if the given HID key code is currently pressed.

Source

pub fn ctrl(&self) -> bool

Returns true if Left Ctrl or Right Ctrl is held.

Source

pub fn shift(&self) -> bool

Returns true if Left Shift or Right Shift is held.

Source

pub fn alt(&self) -> bool

Returns true if Left Alt or Right Alt is held.

Source

pub fn gui(&self) -> bool

Returns true if Left GUI (Win/Cmd) or Right GUI is held.

Trait Implementations§

Source§

impl Clone for KeyboardReport

Source§

fn clone(&self) -> KeyboardReport

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for KeyboardReport

Source§

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

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

impl Default for KeyboardReport

Source§

fn default() -> KeyboardReport

Returns the “default value” for a type. Read more
Source§

impl Format for KeyboardReport
where [u8; 6]: Format,

Source§

fn format(&self, f: Formatter<'_>)

Writes the defmt representation of self to fmt.
Source§

impl PartialEq for KeyboardReport

Source§

fn eq(&self, other: &KeyboardReport) -> 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 Eq for KeyboardReport

Source§

impl StructuralPartialEq for KeyboardReport

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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, 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.