Trait microbit::display::nonblocking::Frame [−]
pub trait Frame: Copy + Default {
type Mtx: Matrix;
const COLS: usize;
const ROWS: usize;
fn row_plan(&self, row: usize) -> &RowPlan;
fn row_plan_mut(&mut self, row: usize) -> &mut RowPlan;
fn set<T>(&mut self, image: &T)
where
T: Render + ?Sized,
{ ... }
}Expand description
A ‘Compiled’ representation of an image to be displayed.
Frames are populated from images implementing [Render], then passed on
to [Display::set_frame()].
Implementing Frame
Implementations of Frame do two things:
- specify the [
Matrix] used to convert between image and matrix coordinates - act like an array of [
RowPlan]s, one for each matrix row.
Note that implementations of Frame must also implement Copy and
Default.
Example implementation
#[derive(Copy, Clone)]
struct SimpleFrame (
[RowPlan; 3]
);
impl Default for SimpleFrame {
fn default() -> SimpleFrame {
SimpleFrame([RowPlan::default(); SimpleFrame::ROWS])
}
}
impl Frame for SimpleFrame {
type Mtx = SimpleMatrix;
fn row_plan(&self, row: usize) -> &RowPlan {
&self.0[row]
}
fn row_plan_mut(&mut self, row: usize) -> &mut RowPlan {
&mut self.0[row]
}
}Associated Types
type Mtx: Matrix
type Mtx: Matrix
The Matrix used to convert between image and matrix coordinates.
Associated Constants
Required methods
Returns a reference to the RowPlan for a row of LEDs.
Panics
Panics if row is not in the range 0..ROWS
fn row_plan_mut(&mut self, row: usize) -> &mut RowPlan
fn row_plan_mut(&mut self, row: usize) -> &mut RowPlan
Returns a mutable reference to the RowPlan for a row of LEDs.
Panics
Panics if row is not in the range 0..ROWS