Struct embedded_graphics::mock_display::MockDisplay[][src]

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

Mock display struct

See the module documentation for usage and examples.

Implementations

impl<C> MockDisplay<C> where
    C: PixelColor
[src]

pub fn new() -> Self[src]

Creates a new empty mock display.

pub fn from_points<I>(points: I, color: C) -> Self where
    I: IntoIterator<Item = Point>, 
[src]

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(&[
    " ## ",
    "####",
    "####",
    " ## ",
]);

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

Sets if out of bounds drawing is allowed.

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

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

Sets if overdrawing is allowed.

If this is set to true the overdrawing is allowed.

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

Returns the color of a pixel.

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

Changes the value of a pixel without bounds checking.

Panics

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

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

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.

pub fn affected_area(&self) -> Rectangle[src]

Returns the area that was affected by drawing operations.

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

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).

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

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(&[
    "#####",
    "# # #",
    "# # #",
    "#   #",
    "     ",
    "#####",
    "#   #",
    "# # #",
    "# ###",
]);

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

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(&[
    "....",
    ".  #",
    "####",
]);

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

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

pub fn eq(&self, other: &MockDisplay<C>) -> bool[src]

Returns true if self and other are equal.

MockDisplay doesn’t implement the PartialEq to make sure that the assert_eq and assert_pattern methods are used instead of the assert_eq! macro.

impl<C> MockDisplay<C> where
    C: PixelColor + ColorMapping
[src]

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

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.

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

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.

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

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.

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

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.

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

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

impl<C: Clone> Clone for MockDisplay<C> where
    C: PixelColor
[src]

fn clone(&self) -> MockDisplay<C>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<C> Debug for MockDisplay<C> where
    C: PixelColor + ColorMapping
[src]

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

Formats the value using the given formatter. Read more

impl<C> Default for MockDisplay<C> where
    C: PixelColor
[src]

fn default() -> Self[src]

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

impl<C> DrawTarget for MockDisplay<C> where
    C: PixelColor
[src]

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

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

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

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

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

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

Fill a given area with a solid color. Read more

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

Fill the entire display with a solid color. Read more

impl<C> OriginDimensions for MockDisplay<C> where
    C: PixelColor
[src]

fn size(&self) -> Size[src]

Returns the size of the bounding box.

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Dimensions for T where
    T: OriginDimensions
[src]

pub fn bounding_box(&self) -> Rectangle[src]

Returns the bounding box.

impl<T> DrawTargetExt for T where
    T: DrawTarget
[src]

pub fn translated(&mut Self, Point) -> Translated<'_, T>[src]

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

pub fn cropped(&mut Self, &Rectangle) -> Cropped<'_, T>[src]

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

pub fn clipped(&mut Self, &Rectangle) -> Clipped<'_, T>[src]

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

pub fn color_converted<C>(&mut Self) -> ColorConverted<'_, T, C> where
    C: PixelColor + Into<<T as DrawTarget>::Color>, 
[src]

Creates a color conversion draw target. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<Src, Dst> LosslessTryInto<Dst> for Src where
    Dst: LosslessTryFrom<Src>, 
[src]

pub fn lossless_try_into(self) -> Option<Dst>[src]

Performs the conversion.

impl<Src, Dst> LossyInto<Dst> for Src where
    Dst: LossyFrom<Src>, 
[src]

pub fn lossy_into(self) -> Dst[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

pub fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more

pub fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).

pub fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

pub fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V