# DeviceHidBinding

`import { DeviceHidBinding } from "destack:device/binding";`

Hid binding family.

```ds title="DeviceHidBinding"
export interface DeviceHidBinding {
    listHidDevices(query: &'a readonly HidDeviceQuery): Result<HidDevice[], HostError>;
    openHidDevice(id: &'a readonly string): Result<HidDeviceHandle, HostError>;
    closeHidDevice(device: HidDeviceHandle): Result<void, HostError>;
    readHidDescriptor(device: HidDeviceHandle): Result<uint8[], HostError>;
    readHidReport(device: HidDeviceHandle, maxBytes: uint32, timeoutNs?: uint64 | undefined): Result<HidReport, HostError>;
    writeHidReport(device: HidDeviceHandle, reportId: uint8, bytes: &'a readonly [uint8]): Result<uint32, HostError>;
    readHidFeature(device: HidDeviceHandle, reportId: uint8, maxBytes: uint32): Result<uint8[], HostError>;
    writeHidFeature(device: HidDeviceHandle, reportId: uint8, bytes: &'a readonly [uint8]): Result<void, HostError>;
}
```

[language/library/src/device/binding/hid.ds:99:187](https://github.com/destack-sh/destack/blob/main/language/library/src/device/binding/hid.ds#L99-L187)

## Members

### `listHidDevices(query: &'a readonly HidDeviceQuery): Result<HidDevice[], HostError>`

List HID devices.

### `openHidDevice(id: &'a readonly string): Result<HidDeviceHandle, HostError>`

Open one HID device.

### `closeHidDevice(device: HidDeviceHandle): Result<void, HostError>`

Close one HID device.

### `readHidDescriptor(device: HidDeviceHandle): Result<uint8[], HostError>`

Read the HID report descriptor.

### `readHidReport(device: HidDeviceHandle, maxBytes: uint32, timeoutNs?: uint64 | undefined): Result<HidReport, HostError>`

Read one HID input report.

### `writeHidReport(device: HidDeviceHandle, reportId: uint8, bytes: &'a readonly [uint8]): Result<uint32, HostError>`

Write one HID output report.

### `readHidFeature(device: HidDeviceHandle, reportId: uint8, maxBytes: uint32): Result<uint8[], HostError>`

Read one HID feature report.

### `writeHidFeature(device: HidDeviceHandle, reportId: uint8, bytes: &'a readonly [uint8]): Result<void, HostError>`

Write one HID feature report.
