//! Traits for byte I/O and CRC computation used by [`crate::run_read`] and [`crate::run_write`].
//!
//! Implement these for your UART driver, USB bulk endpoint, or a host-side test double.
/// Async byte input: fills `data` and returns how many bytes were read.
/// Async byte output: writes the full slice (implementations may fragment internally).
/// CRC over the bytes that precede the 4-byte little-endian CRC trailer on the wire.