use crate::*; pub trait DeviceBus { fn read_u8(&mut self, port: u8) -> u8; fn write_u8(&mut self, value: u8, port: u8) -> Option; fn read_u16(&mut self, port: u8) -> u16 { let high = self.read_u8(port); let low = self.read_u8(port.wrapping_add(1)); u16::from_be_bytes([high, low]) } fn write_u16(&mut self, value: u16, port: u8) -> Option { let [h, l] = value.to_be_bytes(); self.write_u8(h, port); self.write_u8(l, port.wrapping_add(1)) } }