Struct embedded_graphics_core::geometry::Size [−][src]
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 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: u32The width.
height: u32The height.
Implementations
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
}
);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));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));Saturating addition.
Returns u32::max_value() for width and/or height instead of overflowing.
Saturating subtraction.
Returns 0 for width and/or height instead of overflowing, if the
value in other is larger then in self.
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));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));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));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
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.
Performs the += operation. Read more
Performs the /= operation. Read more
Performs the *= operation. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
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.
Performs the -= operation. Read more
Auto Trait Implementations
impl RefUnwindSafe for Size
impl UnwindSafe for Size
Blanket Implementations
Mutably borrows from an owned value. Read more
Casts the value.
Casts the value.
Casts the value.
The inverse inclusion map: attempts to construct self from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
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
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
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self to the equivalent element of its superset.
Casts the value.
pub fn vzip(self) -> V
Casts the value.