From c23c47325a7818c4df4097878f101cd80e2fe361 Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Tue, 25 Mar 2025 12:00:15 +1300 Subject: Partially restructure the library This also changes bit-shifting semantics, shifting left and then right instead of the other way around. --- src/components/device_bus.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/components/device_bus.rs (limited to 'src/components/device_bus.rs') diff --git a/src/components/device_bus.rs b/src/components/device_bus.rs new file mode 100644 index 0000000..9854ee9 --- /dev/null +++ b/src/components/device_bus.rs @@ -0,0 +1,22 @@ +use crate::*; + + +pub trait DeviceBus { + fn read(&mut self, port: u8) -> u8; + fn write(&mut self, port: u8, value: u8) -> Option; + fn wake(&mut self) -> bool; +} + + +pub trait Device { + fn read(&mut self, port: u8) -> u8; + fn write(&mut self, port: u8, value: u8) -> Option; + fn wake(&mut self) -> bool; +} + +impl Device for () { + fn read(&mut self, _: u8) -> u8 { 0 } + fn write(&mut self, _: u8, _: u8) -> Option { None } + fn wake(&mut self) -> bool { false } +} + -- cgit v1.2.3-70-g09d2