Size in embedded_graphics::geometry - Rust (original) (raw)

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

Expand description

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 implementsFrom<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 nalgebrasupport 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));

The width.

The height.

Source§

Source

Creates a size from a width and a height.

Source

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
    }
);

Source

Creates a size with width and height equal to zero.

Source

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

Source

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

Source

Saturating addition.

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

Source

Saturating subtraction.

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

Source

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

Source

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

Source

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

Source

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

Source§

Source§

Offsets a point by adding a size.

§Panics

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

Source§

The resulting type after applying the + operator.

Source§

Source§

The resulting type after applying the + operator.

Source§

Source§

Source§

Offsets a point by adding a size.

§Panics

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

Source§

Source§

Source§

Source§

Source§

Source§

Source§

The resulting type after applying the / operator.

Source§

Source§

Source§

Source§

Writes the defmt representation of self to fmt.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Source§

The returned type after indexing.

Source§

Performs the indexing (container[index]) operation. Read more

Source§

Source§

The resulting type after applying the * operator.

Source§

Source§

Source§

Source§

Source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · Source§

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

Source§

Source§

This method returns an ordering between self and other values if one exists. Read more

1.0.0 · Source§

Tests less than (for self and other) and is used by the < operator. Read more

1.0.0 · Source§

Tests less than or equal to (for self and other) and is used by the<= operator. Read more

1.0.0 · Source§

Tests greater than (for self and other) and is used by the >operator. Read more

1.0.0 · Source§

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Source§

Source§

Offsets a point by subtracting a size.

§Panics

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

Source§

The resulting type after applying the - operator.

Source§

Source§

The resulting type after applying the - operator.

Source§

Source§

Source§

Offsets a point by subtracting a size.

§Panics

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

Source§

Source§

Source§

Source§

§

§

§

§

§

§