Struct embedded_graphics::geometry::Size[][src]

pub struct Size {
    pub width: u32,
    pub height: u32,
}

2D size.

Size is used to define the width and height of an object.

Nalgebra support can be enabled with the nalgebra_support feature. This implements From<Vector2<N>> and From<&Vector2<N>> where N is Scalar + Into<u32>. This allows use of Nalgebra’s Vector2 with embedded-graphics where u32, u16 or u8 is used for value storage.

Examples

Create a Size from two integers

use embedded_graphics::geometry::Size;

// Create a size using the `new` constructor method
let s = Size::new(10, 20);

Create a Size from a Nalgebra Vector2

Be sure to enable the nalgebra_support feature to get Nalgebra integration.

Any Vector2<N> can be used where N: Into<u32> + nalgebra::Scalar. This includes the primitive types u32, u16 and u8.

use embedded_graphics::geometry::Size;
use nalgebra::Vector2;

assert_eq!(Size::from(Vector2::new(10u32, 20)), Size::new(10u32, 20));
assert_eq!(Size::from(Vector2::new(10u16, 20)), Size::new(10u32, 20));
assert_eq!(Size::from(Vector2::new(10u8, 20)), Size::new(10u32, 20));

.into() can also be used, but may require more type annotations:

use embedded_graphics::geometry::Size;
use nalgebra::Vector2;

let c: Size = Vector2::new(10u32, 20).into();

assert_eq!(c, Size::new(10u32, 20));

Fields

width: u32

The width.

height: u32

The height.

Implementations

impl Size[src]

pub const fn new(width: u32, height: u32) -> Size[src]

Creates a size from a width and a height.

pub const fn new_equal(value: u32) -> Size[src]

Creates a size with width and height set to an equal value.

use embedded_graphics::geometry::Size;

let size = Size::new_equal(11);

assert_eq!(
    size,
    Size {
        width: 11,
        height: 11
    }
);

pub const fn zero() -> Size[src]

Creates a size with width and height equal to zero.

pub const fn x_axis(self) -> Size[src]

Returns a size with equal width value and height set to 0.

Examples

Move a Point along the X axis.

use embedded_graphics::geometry::{Point, Size};

let size = Size::new(20, 30);

let point = Point::new(10, 15);

let moved_x = point + size.x_axis();

assert_eq!(moved_x, Point::new(30, 15));

pub const fn y_axis(self) -> Size[src]

Returns a size with equal height value and width set to 0.

Examples

Move a Point along the Y axis.

use embedded_graphics::geometry::{Point, Size};

let size = Size::new(20, 30);

let point = Point::new(10, 15);

let moved_y = point + size.y_axis();

assert_eq!(moved_y, Point::new(10, 45));

pub fn saturating_add(self, other: Size) -> Size[src]

Saturating addition.

Returns u32::max_value() for width and/or height instead of overflowing.

pub fn saturating_sub(self, other: Size) -> Size[src]

Saturating subtraction.

Returns 0 for width and/or height instead of overflowing, if the value in other is larger then in self.

pub fn component_min(self, other: Size) -> Size[src]

Returns the componentwise minimum of two Sizes.

use embedded_graphics::geometry::Size;

let min = Size::new(20, 30).component_min(Size::new(15, 50));

assert_eq!(min, Size::new(15, 30));

pub fn component_max(self, other: Size) -> Size[src]

Returns the componentwise maximum of two Sizes.

use embedded_graphics::geometry::Size;

let min = Size::new(20, 30).component_max(Size::new(15, 50));

assert_eq!(min, Size::new(20, 50));

pub fn component_mul(self, other: Size) -> Size[src]

Returns the componentwise multiplication of two Sizes.

use embedded_graphics::geometry::Size;

let result = Size::new(20, 30).component_mul(Size::new(2, 3));

assert_eq!(result, Size::new(40, 90));

pub fn component_div(self, other: Size) -> Size[src]

Returns the componentwise division of two Sizes.

Panics

Panics if one of the components of other equals zero.

use embedded_graphics::geometry::Size;

let result = Size::new(20, 30).component_div(Size::new(5, 10));

assert_eq!(result, Size::new(4, 3));

Trait Implementations

impl Add<Size> for Point[src]

type Output = Point

The resulting type after applying the + operator.

pub fn add(self, other: Size) -> Point[src]

Offsets a point by adding a size.

Panics

This function will panic if width or height are too large to be represented as an i32 and debug assertions are enabled.

impl Add<Size> for Size[src]

type Output = Size

The resulting type after applying the + operator.

impl AddAssign<Size> for Size[src]

impl AddAssign<Size> for Point[src]

pub fn add_assign(&mut self, other: Size)[src]

Offsets a point by adding a size.

Panics

This function will panic if width or height are too large to be represented as an i32 and debug assertions are enabled.

impl Clone for Size[src]

impl Copy for Size[src]

impl Debug for Size[src]

impl Default for Size[src]

impl Div<u32> for Size[src]

type Output = Size

The resulting type after applying the / operator.

impl DivAssign<u32> for Size[src]

impl Eq for Size[src]

impl<'_> From<&'_ [u32; 2]> for Size[src]

impl<'_, N> From<&'_ Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>> for Size where
    N: Into<u32> + Scalar + Copy
[src]

impl From<[u32; 2]> for Size[src]

impl From<(u32, u32)> for Size[src]

impl<N> From<Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>> for Size where
    N: Into<u32> + Scalar + Copy
[src]

impl Hash for Size[src]

impl Index<usize> for Size[src]

type Output = u32

The returned type after indexing.

impl Mul<u32> for Size[src]

type Output = Size

The resulting type after applying the * operator.

impl MulAssign<u32> for Size[src]

impl Ord for Size[src]

impl PartialEq<Size> for Size[src]

impl PartialOrd<Size> for Size[src]

impl StructuralEq for Size[src]

impl StructuralPartialEq for Size[src]

impl Sub<Size> for Point[src]

type Output = Point

The resulting type after applying the - operator.

pub fn sub(self, other: Size) -> Point[src]

Offsets a point by subtracting a size.

Panics

This function will panic if width or height are too large to be represented as an i32 and debug assertions are enabled.

impl Sub<Size> for Size[src]

type Output = Size

The resulting type after applying the - operator.

impl SubAssign<Size> for Size[src]

impl SubAssign<Size> for Point[src]

pub fn sub_assign(&mut self, other: Size)[src]

Offsets a point by subtracting a size.

Panics

This function will panic if width or height are too large to be represented as an i32 and debug assertions are enabled.

Auto Trait Implementations

impl RefUnwindSafe for Size

impl Send for Size

impl Sync for Size

impl Unpin for Size

impl UnwindSafe for Size

Blanket Implementations

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

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

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

impl<T, Right> ClosedAdd<Right> for T where
    T: Add<Right, Output = T> + AddAssign<Right>, 

impl<T, Right> ClosedDiv<Right> for T where
    T: Div<Right, Output = T> + DivAssign<Right>, 

impl<T, Right> ClosedMul<Right> for T where
    T: Mul<Right, Output = T> + MulAssign<Right>, 

impl<T, Right> ClosedSub<Right> for T where
    T: Sub<Right, Output = T> + SubAssign<Right>, 

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

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

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Scalar for T where
    T: Copy + PartialEq<T> + Debug + Any
[src]

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

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

type Owned = T

The resulting type after obtaining ownership.

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.

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.

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