pub trait RegisterInterfaceAsync {
type BusError: Debug;
// Required methods
async fn read_register<R>(
&mut self,
) -> Result<R, TransportError<<R as Register>::CodecError, Self::BusError>>
where R: ReadableRegister;
async fn write_register<R>(
&mut self,
register: impl AsRef<R>,
) -> Result<(), TransportError<<R as Register>::CodecError, Self::BusError>>
where R: WritableRegister;
}Expand description
A trait that is implemented by any bus interface and allows devices with registers to share register read/write implementations independent of the actual interface in use.
Required Associated Types§
Required Methods§
Sourceasync fn read_register<R>(
&mut self,
) -> Result<R, TransportError<<R as Register>::CodecError, Self::BusError>>where
R: ReadableRegister,
async fn read_register<R>(
&mut self,
) -> Result<R, TransportError<<R as Register>::CodecError, Self::BusError>>where
R: ReadableRegister,
Reads the given register through this interface
Sourceasync fn write_register<R>(
&mut self,
register: impl AsRef<R>,
) -> Result<(), TransportError<<R as Register>::CodecError, Self::BusError>>where
R: WritableRegister,
async fn write_register<R>(
&mut self,
register: impl AsRef<R>,
) -> Result<(), TransportError<<R as Register>::CodecError, Self::BusError>>where
R: WritableRegister,
Writes the given register through this interface
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".