Trait evegfx::interface::Interface[][src]

pub trait Interface: Sized {
    type Error;
    fn begin_write(&mut self, addr: u32) -> Result<(), Self::Error>;
fn begin_read(&mut self, addr: u32) -> Result<(), Self::Error>;
fn continue_write(&mut self, v: &[u8]) -> Result<(), Self::Error>;
fn continue_read(&mut self, into: &mut [u8]) -> Result<(), Self::Error>;
fn end_write(&mut self) -> Result<(), Self::Error>;
fn end_read(&mut self) -> Result<(), Self::Error>;
fn host_cmd(&mut self, cmd: u8, a0: u8, a1: u8) -> Result<(), Self::Error>; fn reset(&mut self) -> Result<(), Self::Error> { ... }
fn write(&mut self, addr: u32, v: &[u8]) -> Result<(), Self::Error> { ... }
fn read(&mut self, addr: u32, into: &mut [u8]) -> Result<(), Self::Error> { ... }
fn build_write_header(&self, addr: u32, into: &mut [u8; 3]) { ... }
fn build_read_header(&self, addr: u32, into: &mut [u8; 4]) { ... }
fn build_host_cmd_msg(
        &self,
        mut cmd: u8,
        a0: u8,
        a1: u8,
        into: &mut [u8; 3]
    ) { ... } }

Implementations of Interface serve as adapters between the interface this library expects and a specific physical implementation of that interface, such as a SPI bus.

The main library contains no implementations of this trait, in order to make the library portable across systems big and small. Other crates, including some with the name prefix evegfx, take on additional dependencies in order to bind this library to specific systems/hardware.

Associated Types

Loading content...

Required methods

fn begin_write(&mut self, addr: u32) -> Result<(), Self::Error>[src]

fn begin_read(&mut self, addr: u32) -> Result<(), Self::Error>[src]

fn continue_write(&mut self, v: &[u8]) -> Result<(), Self::Error>[src]

fn continue_read(&mut self, into: &mut [u8]) -> Result<(), Self::Error>[src]

fn end_write(&mut self) -> Result<(), Self::Error>[src]

fn end_read(&mut self) -> Result<(), Self::Error>[src]

fn host_cmd(&mut self, cmd: u8, a0: u8, a1: u8) -> Result<(), Self::Error>[src]

Loading content...

Provided methods

fn reset(&mut self) -> Result<(), Self::Error>[src]

fn write(&mut self, addr: u32, v: &[u8]) -> Result<(), Self::Error>[src]

fn read(&mut self, addr: u32, into: &mut [u8]) -> Result<(), Self::Error>[src]

fn build_write_header(&self, addr: u32, into: &mut [u8; 3])[src]

Write the three bytes needed to form a "write memory" header for the address into the given bytes. This is a helper for physical implementations that need to construct a message buffer to transmit to the real chip, e.g. via SPI.

fn build_read_header(&self, addr: u32, into: &mut [u8; 4])[src]

Write the four bytes needed to form a "read memory" header for the address into the given bytes. This is a helper for physical implementations that need to construct a message buffer to transmit to the real chip, e.g. via SPI.

fn build_host_cmd_msg(&self, mut cmd: u8, a0: u8, a1: u8, into: &mut [u8; 3])[src]

Write the three bytes needed to form a command message for the command and two arguments given. This is a helper for physical implementations that need to construct a message buffer to transmit to the real chip, e.g. via SPI.

Loading content...

Implementors

impl<'a, M: Model, RF: RegisterFile> Interface for Interface<'a, M, RF>[src]

type Error = Error<RF::Error>

Loading content...