pub struct Rect {
pub x: u16,
pub y: u16,
pub width: u16,
pub height: u16,
}
Expand description
A rectangular area.
A simple rectangle used in the computation of the layout and to give widgets a hint about the area they are supposed to render to.
Fields§
§x: u16
The x coordinate of the top left corner of the Rect
.
y: u16
The y coordinate of the top left corner of the Rect
.
width: u16
The width of the Rect
.
height: u16
The height of the Rect
.
Implementations§
Source§impl Rect
impl Rect
Sourcepub fn new(x: u16, y: u16, width: u16, height: u16) -> Self
pub fn new(x: u16, y: u16, width: u16, height: u16) -> Self
Creates a new Rect
, with width and height limited to keep the area under max u16
. If
clipped, aspect ratio will be preserved.
Sourcepub const fn area(self) -> u16
pub const fn area(self) -> u16
The area of the Rect
. If the area is larger than the maximum value of u16
, it will be
clamped to u16::MAX
.
Sourcepub const fn right(self) -> u16
pub const fn right(self) -> u16
Returns the right coordinate of the Rect
. This is the first coordinate outside of the
Rect
.
If the right coordinate is larger than the maximum value of u16, it will be clamped to
u16::MAX
.
Sourcepub const fn bottom(self) -> u16
pub const fn bottom(self) -> u16
Returns the bottom coordinate of the Rect
. This is the first coordinate outside of the
Rect
.
If the bottom coordinate is larger than the maximum value of u16, it will be clamped to
u16::MAX
.
Sourcepub const fn inner(self, margin_x: u16, margin_y: u16) -> Self
pub const fn inner(self, margin_x: u16, margin_y: u16) -> Self
Returns a new Rect
inside the current one, with the given margin on each side.
If the margin is larger than the Rect
, the returned Rect
will have no area.
Sourcepub fn union(self, other: Self) -> Self
pub fn union(self, other: Self) -> Self
Returns a new Rect
that contains both the current one and the given one.
Sourcepub fn intersection(self, other: Self) -> Self
pub fn intersection(self, other: Self) -> Self
Returns a new Rect
that is the intersection of the current one and the given one.
If the two Rect
s do not intersect, the returned Rect
will have no area.
Sourcepub const fn intersects(self, other: Self) -> bool
pub const fn intersects(self, other: Self) -> bool
Returns true if the two Rect
s intersect.
Sourcepub const fn contains(self, x: u16, y: u16) -> bool
pub const fn contains(self, x: u16, y: u16) -> bool
Returns true if the given position is inside the Rect
.
The position is considered inside the Rect
if it is on the Rect
’s border.
Sourcepub fn clamp(self, other: Self) -> Self
pub fn clamp(self, other: Self) -> Self
Clamp this Rect
to fit inside the other Rect
.
If the width or height of this Rect
is larger than the other Rect
, it will be clamped
to the other Rect
’s width or height.
If the left or top coordinate of this Rect
is smaller than the other Rect
, it will be
clamped to the other Rect
’s left or top coordinate.
If the right or bottom coordinate of this Rect
is larger than the other Rect
, it will
be clamped to the other Rect
’s right or bottom coordinate.
This is different from Rect::intersection
because it will move this Rect
to fit
inside the other Rect
, while Rect::intersection
instead would keep this Rect
’s
position and truncate its size to only that which is inside the other Rect
.
Source§impl Rect
impl Rect
pub fn hsplit_portion(&self, portion: f32) -> (Self, Self)
pub fn vsplit_portion(&self, portion: f32) -> (Self, Self)
pub fn hsplit_len(&self, length: u16) -> (Self, Self)
pub fn vsplit_len(&self, length: u16) -> (Self, Self)
pub fn hsplit_inverse_portion(&self, portion: f32) -> (Self, Self)
pub fn vsplit_inverse_portion(&self, portion: f32) -> (Self, Self)
pub fn hsplit_inverse_len(&self, length: u16) -> (Self, Self)
pub fn vsplit_inverse_len(&self, length: u16) -> (Self, Self)
pub fn inner_centered(&self, width: u16, height: u16) -> Self
pub fn rows(&self) -> Vec<Self>
Trait Implementations§
impl Copy for Rect
impl Eq for Rect
impl StructuralPartialEq for Rect
Auto Trait Implementations§
impl Freeze for Rect
impl RefUnwindSafe for Rect
impl Send for Rect
impl Sync for Rect
impl Unpin for Rect
impl UnwindSafe for Rect
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString
. Read more