Closed
Description
Relevant issue: rust-lang/rust#60553
I am currently working on a PCI driver with many predefined values for classes and their subclasses:
enum ClassCode {
Old(Old) = 0x0,
MassStorage(MassStorageController) = 0x1,
Network(NetworkController) = 0x2,
//...
enum MassStorageController {
SCSI(SCSIController) = 0x0,
IDE(IDEController) = 0x1,
FloppyDiskController = 0x2,
//...
enum SCSIController {
VendorSpecific = 0x00,
StorageDevice = 0x11,
//...
As you can see, these form a kind of hierarchy.
Now I would want to parse the raw values from pci into an enum-value of type ClassCode
.
This would allow for a very nice API:
for device in pci::pci_device_iter() {
match device.class {
ClassCode::MassStorage(MassStorageController::SCSI(_)) => //...
ClassCode::Network(_) => //...
}
}
Metadata
Metadata
Assignees
Labels
No labels