hid-types 0.1.1

Rust types for working with USB HID report descriptors
Documentation
//! Well-known Usage ID values from the SOC Usage Page.

use num_enum::{IntoPrimitive, TryFromPrimitive};

use crate::Ident;

/// Well-known Usage ID values from the SOC Usage Page.
///
/// See [HID Usage Tables for Universal Serial Bus](https://www.usb.org/document-library/hid-usage-tables-17),
/// section 20.
#[expect(missing_docs)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive, IntoPrimitive)]
#[repr(u16)]
pub enum KnownUsage {
    Undefined = 0,
    SocControl = 0x01,
    FirmwareTransfer = 0x02,
    FirmwareFileId = 0x03,
    FileOffsetInBytes = 0x04,
    FileTransferSizeMaxInBytes = 0x05,
    FilePayload = 0x06,
    FilePayloadSizeInBytes = 0x07,
    FilePayloadContainsLastBytes = 0x08,
    FileTransferStop = 0x09,
    FileTransferTillEnd = 0x0A,
    // 0x0B-0xFFFF reserved
}

/// A __Usage ID__ value.
pub type Usage = Ident<KnownUsage, u16>;