Skip to main content

DeviceProxyInterface

Trait DeviceProxyInterface 

Source
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§

Required Methods§

Source

fn transmit(&self, buffer: &SharedVmoBuffer) -> Self::TransmitResponseFut

Source

fn receive(&self, buffer: &SharedVmoBuffer) -> Self::ReceiveResponseFut

Source

fn exchange( &self, tx_buffer: &SharedVmoBuffer, rx_buffer: &SharedVmoBuffer, ) -> Self::ExchangeResponseFut

Source

fn register_vmo( &self, vmo_id: u32, vmo: Range, rights: SharedVmoRight, ) -> Self::RegisterVmoResponseFut

Source

fn unregister_vmo(&self, vmo_id: u32) -> Self::UnregisterVmoResponseFut

Source

fn transmit_vector(&self, data: &[u8]) -> Self::TransmitVectorResponseFut

Source

fn receive_vector(&self, size: u32) -> Self::ReceiveVectorResponseFut

Source

fn exchange_vector(&self, txdata: &[u8]) -> Self::ExchangeVectorResponseFut

Source

fn can_assert_cs(&self) -> Self::CanAssertCsResponseFut

Source

fn assert_cs(&self) -> Self::AssertCsResponseFut

Source

fn deassert_cs(&self) -> Self::DeassertCsResponseFut

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§