Struct embedded_graphics::geometry::Size [−][src]
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 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));
pub fn component_max(self, other: Size) -> Size
[src]
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));
pub fn component_mul(self, other: Size) -> Size
[src]
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));
pub fn component_div(self, other: Size) -> Size
[src]
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
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.
pub fn add(self, other: Size) -> Size
[src]
impl AddAssign<Size> for Size
[src]
pub fn add_assign(&mut self, other: 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.
pub fn div(self, rhs: u32) -> Size
[src]
impl DivAssign<u32> for Size
[src]
pub fn div_assign(&mut self, rhs: u32)
[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]
N: Into<u32> + Scalar + Copy,
pub fn from(
other: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Size
[src]
other: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Size
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]
N: Into<u32> + Scalar + Copy,
pub fn from(
other: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Size
[src]
other: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Size
impl Hash for Size
[src]
pub fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,
[src]
__H: Hasher,
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Index<usize> for Size
[src]
impl Mul<u32> for Size
[src]
type Output = Size
The resulting type after applying the *
operator.
pub fn mul(self, rhs: u32) -> Size
[src]
impl MulAssign<u32> for Size
[src]
pub fn mul_assign(&mut self, rhs: u32)
[src]
impl Ord for Size
[src]
pub fn cmp(&self, other: &Size) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<Size> for Size
[src]
impl PartialOrd<Size> for Size
[src]
pub fn partial_cmp(&self, other: &Size) -> Option<Ordering>
[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[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.
pub fn sub(self, other: Size) -> Size
[src]
impl SubAssign<Size> for Size
[src]
pub fn sub_assign(&mut self, other: 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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, Right> ClosedAdd<Right> for T where
T: Add<Right, Output = T> + AddAssign<Right>,
T: Add<Right, Output = T> + AddAssign<Right>,
impl<T, Right> ClosedDiv<Right> for T where
T: Div<Right, Output = T> + DivAssign<Right>,
T: Div<Right, Output = T> + DivAssign<Right>,
impl<T, Right> ClosedMul<Right> for T where
T: Mul<Right, Output = T> + MulAssign<Right>,
T: Mul<Right, Output = T> + MulAssign<Right>,
impl<T, Right> ClosedSub<Right> for T where
T: Sub<Right, Output = T> + SubAssign<Right>,
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]
U: From<T>,
impl<Src, Dst> LosslessTryInto<Dst> for Src where
Dst: LosslessTryFrom<Src>,
[src]
Dst: LosslessTryFrom<Src>,
pub fn lossless_try_into(self) -> Option<Dst>
[src]
impl<Src, Dst> LossyInto<Dst> for Src where
Dst: LossyFrom<Src>,
[src]
Dst: LossyFrom<Src>,
pub fn lossy_into(self) -> Dst
[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]
T: Copy + PartialEq<T> + Debug + Any,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,