pub struct MockDisplay<C>where
    C: PixelColor,{ /* private fields */ }
Expand description

Mock display struct

See the module documentation for usage and examples.

Implementations§

source§

impl<C> MockDisplay<C>where C: PixelColor,

source

pub fn new() -> Self

Creates a new empty mock display.

source

pub fn from_points<I>(points: I, color: C) -> Selfwhere I: IntoIterator<Item = Point>,

Create a mock display from an iterator of Points.

This method can be used to create a mock display from the iterator produced by the PointsIter::points method.

Panics

This method will panic if the iterator returns a point that is outside the display bounding box.

Examples
use embedded_graphics::{prelude::*, pixelcolor::BinaryColor, primitives::Circle, mock_display::MockDisplay};

let circle = Circle::new(Point::new(0, 0), 4);

let mut display = MockDisplay::from_points(circle.points(), BinaryColor::On);

display.assert_pattern(&[
    " ## ",
    "####",
    "####",
    " ## ",
]);
source

pub fn set_allow_out_of_bounds_drawing(&mut self, value: bool)

Sets if out of bounds drawing is allowed.

If this is set to true the bounds checks during drawing are disabled.

source

pub fn set_allow_overdraw(&mut self, value: bool)

Sets if overdrawing is allowed.

If this is set to true the overdrawing is allowed.

source

pub const fn get_pixel(&self, p: Point) -> Option<C>

Returns the color of a pixel.

source

pub fn set_pixel(&mut self, point: Point, color: Option<C>)

Changes the value of a pixel without bounds checking.

Panics

This method will panic if point is outside the display bounding box.

source

pub fn set_pixels( &mut self, points: impl IntoIterator<Item = Point>, color: Option<C> )

Sets the points in an iterator to the given color.

Panics

This method will panic if the iterator returns points outside the display bounding box.

source

pub fn affected_area(&self) -> Rectangle

Returns the area that was affected by drawing operations.

source

pub fn draw_pixel(&mut self, point: Point, color: C)

Changes the color of a pixel.

Panics

If out of bounds draw checking is enabled (default), this method will panic if the point lies outside the display area. This behavior can be disabled by calling set_allow_out_of_bounds_drawing(true).

Similarly, overdraw is checked by default and will panic if a point is drawn to the same coordinate twice. This behavior can be disabled by calling set_allow_overdraw(true).

source

pub fn swap_xy(&self) -> MockDisplay<C>

Returns a copy of with the content mirrored by swapping x and y.

Examples
use embedded_graphics::{mock_display::MockDisplay, pixelcolor::BinaryColor};

let display: MockDisplay<BinaryColor> = MockDisplay::from_pattern(&[
    "#### ####",
    "#    #   ",
    "###  # ##",
    "#    #  #",
    "#### ####",
]);

let mirrored = display.swap_xy();
mirrored.assert_pattern(&[
    "#####",
    "# # #",
    "# # #",
    "#   #",
    "     ",
    "#####",
    "#   #",
    "# # #",
    "# ###",
]);
source

pub fn map<CT, F>(&self, f: F) -> MockDisplay<CT>where CT: PixelColor, F: Fn(C) -> CT + Copy,

Maps a MockDisplay<C>' to a MockDisplay` by applying a function to each pixel.

Examples

Invert a MockDisplay by applying BinaryColor::invert to the color of each pixel.

use embedded_graphics::{mock_display::MockDisplay, pixelcolor::BinaryColor};

let display: MockDisplay<BinaryColor> = MockDisplay::from_pattern(&[
    "####",
    "#  .",
    "....",
]);

let inverted = display.map(|c| c.invert());
inverted.assert_pattern(&[
    "....",
    ".  #",
    "####",
]);
source

pub fn diff(&self, other: &MockDisplay<C>) -> MockDisplay<Rgb888>

Compares the display to another display.

The following color code is used to show the difference between the displays:

ColorDescription
NoneThe color of the pixel is equal in both displays.
Some(Rgb888::GREEN)The pixel was only set in self
Some(Rgb888::RED)The pixel was only set in other
Some(Rgb888::BLUE)The pixel was set to a different colors in self and other
source§

impl<C> MockDisplay<C>where C: PixelColor + ColorMapping,

source

pub fn from_pattern(pattern: &[&str]) -> MockDisplay<C>

Creates a new mock display from a character pattern.

The color pattern is specified by a slice of string slices. Each string slice represents a row of pixels and every character a single pixel.

A space character in the pattern represents a pixel which wasn’t modified by any drawing routine and is left in the default state. All other characters are converted by implementations of the ColorMapping trait.

source

pub fn assert_eq(&self, other: &MockDisplay<C>)

Checks if the displays are equal.

An advanced output for failing tests can be enabled by setting the environment variable EG_FANCY_PANIC=1. See the module-level documentation for more details.

Panics

Panics if the displays aren’t equal.

source

pub fn assert_eq_with_message<F>(&self, other: &MockDisplay<C>, msg: F)where F: Fn(&mut Formatter<'_>) -> Result,

Checks if the displays are equal.

An advanced output for failing tests can be enabled by setting the environment variable EG_FANCY_PANIC=1. See the module-level documentation for more details.

The output of the msg function will be prepended to the output if the assertion fails.

Panics

Panics if the displays aren’t equal.

source

pub fn assert_pattern(&self, pattern: &[&str])

Checks if the display is equal to the given pattern.

An advanced output for failing tests can be enabled, see the module-level documentation for more details.

Panics

Panics if the display content isn’t equal to the pattern.

source

pub fn assert_pattern_with_message<F>(&self, pattern: &[&str], msg: F)where F: Fn(&mut Formatter<'_>) -> Result,

Checks if the display is equal to the given pattern.

An advanced output for failing tests can be enabled, see the module-level documentation for more details.

The output of the msg function will be prepended to the output if the assertion fails.

Panics

Panics if the display content isn’t equal to the pattern.

Trait Implementations§

source§

impl<C> Clone for MockDisplay<C>where C: PixelColor + Clone,

source§

fn clone(&self) -> MockDisplay<C>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<C> Debug for MockDisplay<C>where C: PixelColor + ColorMapping,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<C> Default for MockDisplay<C>where C: PixelColor,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<C> DrawTarget for MockDisplay<C>where C: PixelColor,

§

type Color = C

The pixel color type the targetted display supports.
§

type Error = Infallible

Error type to return when a drawing operation fails. Read more
source§

fn draw_iter<I>(&mut self, pixels: I) -> Result<(), Self::Error>where I: IntoIterator<Item = Pixel<Self::Color>>,

Draw individual pixels to the display without a defined order. Read more
source§

fn fill_contiguous<I>( &mut self, area: &Rectangle, colors: I ) -> Result<(), Self::Error>where I: IntoIterator<Item = Self::Color>,

Fill a given area with an iterator providing a contiguous stream of pixel colors. Read more
source§

fn fill_solid( &mut self, area: &Rectangle, color: Self::Color ) -> Result<(), Self::Error>

Fill a given area with a solid color. Read more
source§

fn clear(&mut self, color: Self::Color) -> Result<(), Self::Error>

Fill the entire display with a solid color. Read more
source§

impl<C> OriginDimensions for MockDisplay<C>where C: PixelColor,

source§

fn size(&self) -> Size

Returns the size of the bounding box.
source§

impl<C: PixelColor> PartialEq<MockDisplay<C>> for MockDisplay<C>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<C> RefUnwindSafe for MockDisplay<C>where C: RefUnwindSafe,

§

impl<C> Send for MockDisplay<C>where C: Send,

§

impl<C> Sync for MockDisplay<C>where C: Sync,

§

impl<C> Unpin for MockDisplay<C>where C: Unpin,

§

impl<C> UnwindSafe for MockDisplay<C>where C: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dstwhere T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dstwhere Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> Dimensions for Twhere T: OriginDimensions,

source§

fn bounding_box(&self) -> Rectangle

Returns the bounding box.
source§

impl<T> DrawTargetExt for Twhere T: DrawTarget,

source§

fn translated(&mut self, offset: Point) -> Translated<'_, T>

Creates a translated draw target based on this draw target. Read more
source§

fn cropped(&mut self, area: &Rectangle) -> Cropped<'_, T>

Creates a cropped draw target based on this draw target. Read more
source§

fn clipped(&mut self, area: &Rectangle) -> Clipped<'_, T>

Creates a clipped draw target based on this draw target. Read more
source§

fn color_converted<C>(&mut self) -> ColorConverted<'_, T, C>where C: PixelColor + Into<<T as DrawTarget>::Color>,

Creates a color conversion draw target. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dstwhere T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dstwhere T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dstwhere T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.