Struct embedded_graphics::geometry::Size
source · [−]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: u32
The width.
height: u32
The height.
Implementations
sourceimpl Size
impl Size
sourcepub const fn new_equal(value: u32) -> Size
pub const fn new_equal(value: u32) -> Size
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
}
);
sourcepub const fn x_axis(self) -> Size
pub const fn x_axis(self) -> Size
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));
sourcepub const fn y_axis(self) -> Size
pub const fn y_axis(self) -> Size
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));
sourcepub fn saturating_add(self, other: Size) -> Size
pub fn saturating_add(self, other: Size) -> Size
Saturating addition.
Returns u32::max_value()
for width
and/or height
instead of overflowing.
sourcepub fn saturating_sub(self, other: Size) -> Size
pub fn saturating_sub(self, other: Size) -> Size
Saturating subtraction.
Returns 0
for width
and/or height
instead of overflowing, if the
value in other
is larger then in self
.
sourcepub fn component_min(self, other: Size) -> Size
pub fn component_min(self, other: Size) -> Size
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));
sourcepub fn component_max(self, other: Size) -> Size
pub fn component_max(self, other: Size) -> Size
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));
sourcepub fn component_mul(self, other: Size) -> Size
pub fn component_mul(self, other: Size) -> Size
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));
sourcepub fn component_div(self, other: Size) -> Size
pub fn component_div(self, other: Size) -> Size
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));
Trait Implementations
sourceimpl AddAssign<Size> for Size
impl AddAssign<Size> for Size
sourcepub fn add_assign(&mut self, other: Size)
pub fn add_assign(&mut self, other: Size)
Performs the +=
operation. Read more
sourceimpl AddAssign<Size> for Point
impl AddAssign<Size> for Point
sourcepub fn add_assign(&mut self, other: Size)
pub fn add_assign(&mut self, other: Size)
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.
sourceimpl DivAssign<u32> for Size
impl DivAssign<u32> for Size
sourcepub fn div_assign(&mut self, rhs: u32)
pub fn div_assign(&mut self, rhs: u32)
Performs the /=
operation. Read more
sourceimpl MulAssign<u32> for Size
impl MulAssign<u32> for Size
sourcepub fn mul_assign(&mut self, rhs: u32)
pub fn mul_assign(&mut self, rhs: u32)
Performs the *=
operation. Read more
sourceimpl Ord for Size
impl Ord for Size
sourceimpl PartialOrd<Size> for Size
impl PartialOrd<Size> for Size
sourcepub fn partial_cmp(&self, other: &Size) -> Option<Ordering>
pub fn partial_cmp(&self, other: &Size) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl SubAssign<Size> for Point
impl SubAssign<Size> for Point
sourcepub fn sub_assign(&mut self, other: Size)
pub fn sub_assign(&mut self, other: Size)
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.
sourceimpl SubAssign<Size> for Size
impl SubAssign<Size> for Size
sourcepub fn sub_assign(&mut self, other: Size)
pub fn sub_assign(&mut self, other: Size)
Performs the -=
operation. Read more
impl Copy for Size
impl Eq for Size
impl StructuralEq for Size
impl StructuralPartialEq for Size
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcepub fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
pub fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
sourcepub fn checked_cast_from(src: Src) -> Option<Dst>
pub fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcepub fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
pub fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
sourcepub fn overflowing_cast_from(src: Src) -> (Dst, bool)
pub fn overflowing_cast_from(src: Src) -> (Dst, bool)
OverflowingCasts the value.
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcepub fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
pub fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
sourcepub fn saturating_cast_from(src: Src) -> Dst
pub fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcepub fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
pub fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
sourcepub fn unwrapped_cast_from(src: Src) -> Dst
pub fn unwrapped_cast_from(src: Src) -> Dst
UnwrappedCasts the value.
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcepub fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
pub fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
sourcepub fn wrapping_cast_from(src: Src) -> Dst
pub fn wrapping_cast_from(src: Src) -> Dst
WrappingCasts the value.