pub trait DeviceProxyInterface: Send + Sync {
type TransmitResponseFut: Future<Output = Result<SharedVmoIoTransmitResult, Error>> + Send;
type ReceiveResponseFut: Future<Output = Result<SharedVmoIoReceiveResult, Error>> + Send;
type ExchangeResponseFut: Future<Output = Result<SharedVmoIoExchangeResult, Error>> + Send;
type RegisterVmoResponseFut: Future<Output = Result<SharedVmoRegisterRegisterVmoResult, Error>> + Send;
type UnregisterVmoResponseFut: Future<Output = Result<SharedVmoRegisterUnregisterVmoResult, Error>> + Send;
type TransmitVectorResponseFut: Future<Output = Result<i32, Error>> + Send;
type ReceiveVectorResponseFut: Future<Output = Result<(i32, Vec<u8>), Error>> + Send;
type ExchangeVectorResponseFut: Future<Output = Result<(i32, Vec<u8>), Error>> + Send;
type CanAssertCsResponseFut: Future<Output = Result<bool, Error>> + Send;
type AssertCsResponseFut: Future<Output = Result<i32, Error>> + Send;
type DeassertCsResponseFut: Future<Output = Result<i32, Error>> + Send;
// Required methods
fn transmit(&self, buffer: &SharedVmoBuffer) -> Self::TransmitResponseFut;
fn receive(&self, buffer: &SharedVmoBuffer) -> Self::ReceiveResponseFut;
fn exchange(
&self,
tx_buffer: &SharedVmoBuffer,
rx_buffer: &SharedVmoBuffer,
) -> Self::ExchangeResponseFut;
fn register_vmo(
&self,
vmo_id: u32,
vmo: Range,
rights: SharedVmoRight,
) -> Self::RegisterVmoResponseFut;
fn unregister_vmo(&self, vmo_id: u32) -> Self::UnregisterVmoResponseFut;
fn transmit_vector(&self, data: &[u8]) -> Self::TransmitVectorResponseFut;
fn receive_vector(&self, size: u32) -> Self::ReceiveVectorResponseFut;
fn exchange_vector(&self, txdata: &[u8]) -> Self::ExchangeVectorResponseFut;
fn can_assert_cs(&self) -> Self::CanAssertCsResponseFut;
fn assert_cs(&self) -> Self::AssertCsResponseFut;
fn deassert_cs(&self) -> Self::DeassertCsResponseFut;
}Required Associated Types§
type TransmitResponseFut: Future<Output = Result<SharedVmoIoTransmitResult, Error>> + Send
type ReceiveResponseFut: Future<Output = Result<SharedVmoIoReceiveResult, Error>> + Send
type ExchangeResponseFut: Future<Output = Result<SharedVmoIoExchangeResult, Error>> + Send
type RegisterVmoResponseFut: Future<Output = Result<SharedVmoRegisterRegisterVmoResult, Error>> + Send
type UnregisterVmoResponseFut: Future<Output = Result<SharedVmoRegisterUnregisterVmoResult, Error>> + Send
type TransmitVectorResponseFut: Future<Output = Result<i32, Error>> + Send
type ReceiveVectorResponseFut: Future<Output = Result<(i32, Vec<u8>), Error>> + Send
type ExchangeVectorResponseFut: Future<Output = Result<(i32, Vec<u8>), Error>> + Send
type CanAssertCsResponseFut: Future<Output = Result<bool, Error>> + Send
type AssertCsResponseFut: Future<Output = Result<i32, Error>> + Send
type DeassertCsResponseFut: Future<Output = Result<i32, Error>> + Send
Required Methods§
fn transmit(&self, buffer: &SharedVmoBuffer) -> Self::TransmitResponseFut
fn receive(&self, buffer: &SharedVmoBuffer) -> Self::ReceiveResponseFut
fn exchange( &self, tx_buffer: &SharedVmoBuffer, rx_buffer: &SharedVmoBuffer, ) -> Self::ExchangeResponseFut
fn register_vmo( &self, vmo_id: u32, vmo: Range, rights: SharedVmoRight, ) -> Self::RegisterVmoResponseFut
fn unregister_vmo(&self, vmo_id: u32) -> Self::UnregisterVmoResponseFut
fn transmit_vector(&self, data: &[u8]) -> Self::TransmitVectorResponseFut
fn receive_vector(&self, size: u32) -> Self::ReceiveVectorResponseFut
fn exchange_vector(&self, txdata: &[u8]) -> Self::ExchangeVectorResponseFut
fn can_assert_cs(&self) -> Self::CanAssertCsResponseFut
fn assert_cs(&self) -> Self::AssertCsResponseFut
fn deassert_cs(&self) -> Self::DeassertCsResponseFut
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".