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.
Creates a size from a width and a height.
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
}
);
Creates a size with width and height equal to zero.
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 Size
s.
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 Size
s.
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 Size
s.
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 Size
s.
§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));
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.
The resulting type after applying the +
operator.
The resulting type after applying the +
operator.
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.
The resulting type after applying the /
operator.
Writes the defmt representation of self
to fmt
.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
The returned type after indexing.
Performs the indexing (container[index]
) operation. Read more
The resulting type after applying the *
operator.
Tests for self
and other
values to be equal, and is used by ==
.
Tests for !=
. The default implementation is almost always sufficient, and should not be overridden without very good reason.
This method returns an ordering between self
and other
values if one exists. Read more
Tests less than (for self
and other
) and is used by the <
operator. Read more
Tests less than or equal to (for self
and other
) and is used by the<=
operator. Read more
Tests greater than (for self
and other
) and is used by the >
operator. Read more
Tests greater than or equal to (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.
The resulting type after applying the -
operator.
The resulting type after applying the -
operator.
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.