pub trait Block: Sized {
type Interface;
type RegisterAddressType: Address;
type CommandAddressType: Address;
type BufferAddressType: Address;
type RegisterAddressMode;
// Required method
fn interface(&mut self) -> &mut Self::Interface;
// Provided methods
fn bulk_read(
&mut self,
) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), RO>
where Self::Interface: RegisterInterfaceBase,
Self::RegisterAddressMode: AddressMode { ... }
fn bulk_write(
&mut self,
) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), WO>
where Self::Interface: RegisterInterfaceBase,
Self::RegisterAddressMode: AddressMode { ... }
fn bulk_modify(
&mut self,
) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), RW>
where Self::Interface: RegisterInterfaceBase,
Self::RegisterAddressMode: AddressMode { ... }
}Expand description
Trait implemented on every generated block/device.
Required Associated Types§
Sourcetype RegisterAddressType: Address
type RegisterAddressType: Address
The register address type
Sourcetype CommandAddressType: Address
type CommandAddressType: Address
The command address type
Sourcetype BufferAddressType: Address
type BufferAddressType: Address
The buffer address type
Sourcetype RegisterAddressMode
type RegisterAddressMode
The address mode of the registers in this block
Required Methods§
Provided Methods§
Sourcefn bulk_read(
&mut self,
) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), RO>
fn bulk_read( &mut self, ) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), RO>
Start a bulk-read transaction
You can chain reads by calling register::BulkRegisterOperation::with.
Once chained, call register::BulkRegisterOperation::execute to perform the read.
Sourcefn bulk_write(
&mut self,
) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), WO>
fn bulk_write( &mut self, ) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), WO>
Start a bulk-write transaction
You can chain writes by calling register::BulkRegisterOperation::with.
Once chained, call register::BulkRegisterOperation::execute to perform the write.
Sourcefn bulk_modify(
&mut self,
) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), RW>
fn bulk_modify( &mut self, ) -> BulkRegisterOperation<'_, Self, <Self::Interface as RegisterInterfaceBase>::AddressType, (), RW>
Start a bulk-modify transaction
You can chain modifies by calling register::BulkRegisterOperation::with.
Once chained, call register::BulkRegisterOperation::execute to perform the modify.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".