A three-part version consisting of major, minor, and sub minor components.
This can be used to represent versions of the format J.M.N, where J is the major version,
M is the minor version, and N is the sub minor version. A version is constructed by
providing the fields in the same order to the tuple. For example:
rusb::Version(0, 2, 1);
represents the version 0.2.1.
The intended use case of Version is to extract meaning from the version fields in USB
descriptors, such as bcdUSB and bcdDevice in device descriptors.
Extracts a version from a binary coded decimal (BCD) field. BCD fields exist in USB
descriptors as 16-bit integers encoding a version as 0xJJMN, where JJ is the major
version, M is the minor version, and N is the sub minor version. For example, 2.0 is
encoded as 0x0200 and 1.1 is encoded as 0x0110.