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: u16The x coordinate of the top left corner of the Rect.
y: u16The y coordinate of the top left corner of the Rect.
width: u16The width of the Rect.
height: u16The 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 Rects 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 Rects 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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)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