Skip to main content

LwRectangle

Struct LwRectangle 

Source
pub struct LwRectangle<T, U> {
    pub top_left: LwPoint<T>,
    pub size: LwSize<U>,
}
Expand description

Lightweight rectangle type with configurable coordinate and dimension types.

This struct represents a 2D rectangle with a top-left point and size, using configurable integer types for coordinates and dimensions. It’s designed to be more memory-efficient than standard embedded_graphics::Rectangle for embedded systems.

§Type Parameters

  • T - The coordinate type for the top-left point (typically i8 or i16)
  • U - The dimension type for the size (typically u8 or u16)

§Example

use matrix_gui::prelude::*;

// Create a rectangle
let rect = LwRectangle::new(
    LwPoint::new(10, 20),
    LwSize::new(100, 200)
);

// Convert from embedded_graphics Rectangle
let eg_rect = embedded_graphics::primitives::Rectangle::new(
    embedded_graphics::geometry::Point::new(10, 20),
    embedded_graphics::geometry::Size::new(100, 200)
);
let lw_rect: LwRectangle<i16, u16> = eg_rect.into();

Fields§

§top_left: LwPoint<T>

The top-left corner of the rectangle.

§size: LwSize<U>

The size of the rectangle.

Implementations§

Source§

impl<T, U> LwRectangle<T, U>
where T: Copy + Clone + Eq + PartialEq + Debug + Default, U: Copy + Clone + Eq + PartialEq + Debug + Default,

Source

pub const fn new(top_left: LwPoint<T>, size: LwSize<U>) -> Self

Creates a new LwRectangle with the specified top-left point and size.

§Arguments
  • top_left - The top-left corner point.
  • size - The size of the rectangle.
§Returns

A new LwRectangle instance.

Source§

impl LwRectangle<i16, u16>

Source

pub fn center_scale( &self, horizontal_percent: u16, vertical_percent: u16, ) -> Self

Scales the rectangle around its center by the given percentage.

§Arguments
  • percent - The percentage to scale by (100% means no change). 200% means double the size, 50% means half the size, etc.
Source

pub fn delta_resize(&self, delta: DeltaResize) -> Self

Resizes the rectangle using the specified resize delta.

Source

pub fn move_by(&self, dx: i16, dy: i16) -> Self

Moves the rectangle by the specified amount.

Source

pub fn rectangle(&self) -> Rectangle

Converts the LwRectangle to an embedded_graphics::Rectangle.

Source

pub fn resized( &self, width: u16, height: u16, anchor_point: AnchorPoint, ) -> Self

Resizes the rectangle to the specified width and height, using the given anchor point.

Trait Implementations§

Source§

impl<T: Clone, U: Clone> Clone for LwRectangle<T, U>

Source§

fn clone(&self) -> LwRectangle<T, U>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug, U: Debug> Debug for LwRectangle<T, U>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Default, U: Default> Default for LwRectangle<T, U>

Source§

fn default() -> LwRectangle<T, U>

Returns the “default value” for a type. Read more
Source§

impl From<LwRectangle<i16, u16>> for Rectangle

Converts LwRectangle<i16, u16> to embedded_graphics::Rectangle.

Source§

fn from(lw_rect: LwRectangle<i16, u16>) -> Self

Converts to this type from the input type.
Source§

impl From<LwRectangle<i8, u8>> for Rectangle

Converts LwRectangle<i8, u8> to embedded_graphics::Rectangle.

Source§

fn from(lw_rect: LwRectangle<i8, u8>) -> Self

Converts to this type from the input type.
Source§

impl From<Rectangle> for LwRectangle<i16, u16>

Converts an embedded_graphics::Rectangle to LwRectangle<i16, u16> using saturating cast.

Source§

fn from(rect: Rectangle) -> Self

Converts to this type from the input type.
Source§

impl From<Rectangle> for LwRectangle<i8, u8>

Converts an embedded_graphics::Rectangle to LwRectangle<i8, u8> using saturating cast.

Source§

fn from(rect: Rectangle) -> Self

Converts to this type from the input type.
Source§

impl<T: PartialEq, U: PartialEq> PartialEq for LwRectangle<T, U>

Source§

fn eq(&self, other: &LwRectangle<T, U>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

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

impl<T: Copy, U: Copy> Copy for LwRectangle<T, U>

Source§

impl<T: Eq, U: Eq> Eq for LwRectangle<T, U>

Source§

impl<T, U> StructuralPartialEq for LwRectangle<T, U>

Auto Trait Implementations§

§

impl<T, U> Freeze for LwRectangle<T, U>
where T: Freeze, U: Freeze,

§

impl<T, U> RefUnwindSafe for LwRectangle<T, U>

§

impl<T, U> Send for LwRectangle<T, U>
where T: Send, U: Send,

§

impl<T, U> Sync for LwRectangle<T, U>
where T: Sync, U: Sync,

§

impl<T, U> Unpin for LwRectangle<T, U>
where T: Unpin, U: Unpin,

§

impl<T, U> UnsafeUnpin for LwRectangle<T, U>
where T: UnsafeUnpin, U: UnsafeUnpin,

§

impl<T, U> UnwindSafe for LwRectangle<T, U>
where T: UnwindSafe, U: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.