pub trait RfidTransport {
type Error: std::fmt::Debug;
fn write(&mut self, data: &[u8]) -> Result<usize, Self::Error>;
fn read(&mut self, buf: &mut [u8], timeout_ms: u32) -> Result<usize, Self::Error>;
fn clear_input(&mut self) -> Result<(), Self::Error>;
}