pub trait DmaChannel {
// Required methods
fn start(&mut self);
fn stop(&mut self);
fn set_peripheral_address<T: Sized + Copy>(
&mut self,
address: usize,
mem_to_periph: bool,
increase: bool,
circular: bool,
);
fn set_memory_address(&mut self, address: usize, increase: bool);
fn set_transfer_length(&mut self, len: usize);
fn set_memory_to_memory<T: Sized + Copy>(
&mut self,
src_addr: usize,
dst_addr: usize,
len: usize,
);
fn get_left_len(&self) -> usize;
fn in_progress(&self) -> bool;
fn set_interrupt(&mut self, event: DmaEvent, enable: bool);
fn is_interrupted(&mut self, event: DmaEvent) -> bool;
// Provided method
fn set_memory_buf_for_peripheral<T: Sized + Copy>(&mut self, buf: &[T]) { ... }
}Required Methods§
fn start(&mut self)
fn stop(&mut self)
fn set_peripheral_address<T: Sized + Copy>( &mut self, address: usize, mem_to_periph: bool, increase: bool, circular: bool, )
fn set_memory_address(&mut self, address: usize, increase: bool)
fn set_transfer_length(&mut self, len: usize)
fn set_memory_to_memory<T: Sized + Copy>( &mut self, src_addr: usize, dst_addr: usize, len: usize, )
fn get_left_len(&self) -> usize
fn in_progress(&self) -> bool
fn set_interrupt(&mut self, event: DmaEvent, enable: bool)
fn is_interrupted(&mut self, event: DmaEvent) -> bool
Provided Methods§
fn set_memory_buf_for_peripheral<T: Sized + Copy>(&mut self, buf: &[T])
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.