# UsbDevice

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

USB device descriptor.

```ds title="UsbDevice"
export struct UsbDevice {
    id: string;
    vendorId: uint16;
    productId: uint16;
    classCode: uint8;
    subclassCode: uint8;
    protocolCode: uint8;
    usbVersionBcd: uint16;
    deviceVersionBcd: uint16;
    speed: UsbSpeed;
    manufacturer: string;
    product: string;
    serialNumber: string;
}
```

[language/library/src/device/binding/usb.ds:86:111](https://github.com/destack-sh/destack/blob/main/language/library/src/device/binding/usb.ds#L86-L111)

## Members

### `id: string`

Stable host identifier.

### `vendorId: uint16`

USB vendor identifier.

### `productId: uint16`

USB product identifier.

### `classCode: uint8`

Device class code.

### `subclassCode: uint8`

Device subclass code.

### `protocolCode: uint8`

Device protocol code.

### `usbVersionBcd: uint16`

USB version in binary-coded decimal form.

### `deviceVersionBcd: uint16`

Device version in binary-coded decimal form.

### `speed: UsbSpeed`

Negotiated device speed when available.

### `manufacturer: string`

Host-visible manufacturer string when available.

### `product: string`

Host-visible product string when available.

### `serialNumber: string`

Host-visible serial number when available.
