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.
Frame
s 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]
}
}
Required Associated Types
type Mtx: Matrix
type Mtx: Matrix
The Matrix used to convert between image and matrix coordinates.
Provided 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