pub trait IoCapable<T> {
// Required methods
unsafe fn io_read(&self, address: usize) -> T;
unsafe fn io_write(&self, value: T, address: usize);
}Expand description
Trait indicating that an I/O backend supports operations of a certain type and providing an implementation for these operations.
Different I/O backends can implement this trait to expose only the operations they support.
For example, a PCI configuration space may implement IoCapable<u8>, IoCapable<u16>,
and IoCapable<u32>, but not IoCapable<u64>, while an MMIO region on a 64-bit
system might implement all four.