# Struct iced::Rectangle

``````pub struct Rectangle<T = f32> {
pub x: T,
pub y: T,
pub width: T,
pub height: T,
}``````
Expand description

A rectangle.

## Fields§

§`x: T`

X coordinate of the top-left corner.

§`y: T`

Y coordinate of the top-left corner.

§`width: T`

Width of the rectangle.

§`height: T`

Height of the rectangle.

## Implementations§

source§

### impl Rectangle

source

#### pub fn new(top_left: Point, size: Size) -> Rectangle

Creates a new `Rectangle` with its top-left corner in the given `Point` and with the provided `Size`.

source

#### pub fn with_size(size: Size) -> Rectangle

Creates a new `Rectangle` with its top-left corner at the origin and with the provided `Size`.

source

#### pub fn center(&self) -> Point

Returns the `Point` at the center of the `Rectangle`.

source

#### pub fn center_x(&self) -> f32

Returns the X coordinate of the `Point` at the center of the `Rectangle`.

source

#### pub fn center_y(&self) -> f32

Returns the Y coordinate of the `Point` at the center of the `Rectangle`.

source

#### pub fn position(&self) -> Point

Returns the position of the top left corner of the `Rectangle`.

source

source

#### pub fn area(&self) -> f32

Returns the area of the `Rectangle`.

source

#### pub fn contains(&self, point: Point) -> bool

Returns true if the given `Point` is contained in the `Rectangle`.

source

#### pub fn is_within(&self, container: &Rectangle) -> bool

Returns true if the current `Rectangle` is completely within the given `container`.

source

#### pub fn intersection(&self, other: &Rectangle) -> Option<Rectangle>

Computes the intersection with the given `Rectangle`.

source

#### pub fn intersects(&self, other: &Rectangle) -> bool

Returns whether the `Rectangle` intersects with the given one.

source

#### pub fn union(&self, other: &Rectangle) -> Rectangle

Computes the union with the given `Rectangle`.

source

#### pub fn snap(self) -> Rectangle<u32>

Snaps the `Rectangle` to unsigned integer coordinates.

source

#### pub fn expand(self, amount: f32) -> Rectangle

Expands the `Rectangle` a given amount.

## Trait Implementations§

source§

§

#### type Output = Rectangle<T>

The resulting type after applying the `+` operator.
source§

#### fn add(self, translation: Vector<T>) -> Rectangle<T>

Performs the `+` operation. Read more
source§

### impl<T> Clone for Rectangle<T>where T: Clone,

source§

#### fn clone(&self) -> Rectangle<T>

Returns a copy 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 for Rectangle<T>where T: Debug,

source§

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

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

### impl<T> Default for Rectangle<T>where T: Default,

source§

#### fn default() -> Rectangle<T>

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

### impl From<Rectangle<u32>> for Rectangle

source§

#### fn from(rectangle: Rectangle<u32>) -> Rectangle

Converts to this type from the input type.
source§

### impl Mul<Transformation> for Rectangle

§

#### type Output = Rectangle

The resulting type after applying the `*` operator.
source§

#### fn mul(self, transformation: Transformation) -> Rectangle

Performs the `*` operation. Read more
source§

### impl Mul<f32> for Rectangle

§

#### type Output = Rectangle

The resulting type after applying the `*` operator.
source§

#### fn mul(self, scale: f32) -> Rectangle

Performs the `*` operation. Read more
source§

### impl<T> PartialEq for Rectangle<T>where T: PartialEq,

source§

#### fn eq(&self, other: &Rectangle<T>) -> bool

This method tests for `self` and `other` values to be equal, and is used by `==`.
1.0.0 · source§

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

This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

### impl<T> Sub<Vector<T>> for Rectangle<T>where T: Sub<Output = T>,

§

#### type Output = Rectangle<T>

The resulting type after applying the `-` operator.
source§

#### fn sub(self, translation: Vector<T>) -> Rectangle<T>

Performs the `-` operation. Read more
source§

source§

source§

§

§

§

§

§

## Blanket Implementations§

source§

### impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

source§

#### fn adapt_into_using<M>(self, method: M) -> Dwhere M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
source§

Convert the source color to the destination color using the bradford method by default.
source§

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

source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
source§

### impl<T, C> ArraysFrom<C> for Twhere C: IntoArrays<T>,

source§

#### fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
source§

### impl<T, C> ArraysInto<C> for Twhere C: FromArrays<T>,

source§

#### fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
source§

### impl<T> Borrow<T> for Twhere T: ?Sized,

source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

### impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

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

Mutably borrows from an owned value. Read more
source§

### impl<T, C> ComponentsFrom<C> for Twhere C: IntoComponents<T>,

source§

#### fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
§

§

§

### impl<T> Downcast for Twhere T: Any,

§

#### fn into_any(self: Box<T>) -> Box<dyn Any>

Convert `Box<dyn Trait>` (where `Trait: Downcast`) to `Box<dyn Any>`. `Box<dyn Any>` can then be further `downcast` into `Box<ConcreteType>` where `ConcreteType` implements `Trait`.
§

#### fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert `Rc<Trait>` (where `Trait: Downcast`) to `Rc<Any>`. `Rc<Any>` can then be further `downcast` into `Rc<ConcreteType>` where `ConcreteType` implements `Trait`.
§

#### fn as_any(&self) -> &(dyn Any + 'static)

Convert `&Trait` (where `Trait: Downcast`) to `&Any`. This is needed since Rust cannot generate `&Any`’s vtable from `&Trait`’s.
§

#### fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert `&mut Trait` (where `Trait: Downcast`) to `&Any`. This is needed since Rust cannot generate `&mut Any`’s vtable from `&mut Trait`’s.
§

### impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

#### fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert `Arc<Trait>` (where `Trait: Downcast`) to `Arc<Any>`. `Arc<Any>` can then be further `downcast` into `Arc<ConcreteType>` where `ConcreteType` implements `Trait`.
§

### impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

#### fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

### impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

#### fn equivalent(&self, key: &K) -> bool

Compare self to `key` and return `true` if they are equal.
source§

### impl<T> From<T> for T

source§

#### fn from(t: T) -> T

Returns the argument unchanged.

source§

### impl<T> FromAngle<T> for T

source§

#### fn from_angle(angle: T) -> T

Performs a conversion from `angle`.
source§

### impl<T, U> FromStimulus<U> for Twhere U: IntoStimulus<T>,

source§

#### fn from_stimulus(other: U) -> T

Converts `other` into `Self`, while performing the appropriate scaling, rounding and clamping.
§

### impl<T> Instrument for T

§

#### fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [`Span`], returning an `Instrumented` wrapper. Read more
§

#### fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current `Span`, returning an `Instrumented` wrapper. Read more
source§

### impl<T, U> Into<U> for Twhere 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, U> IntoAngle<U> for Twhere U: FromAngle<T>,

source§

#### fn into_angle(self) -> U

Performs a conversion into `T`.
source§

### impl<T, U> IntoColor<U> for Twhere U: FromColor<T>,

source§

#### fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

### impl<T, U> IntoColorUnclamped<U> for Twhere U: FromColorUnclamped<T>,

source§

#### fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

### impl<T> IntoStimulus<T> for T

source§

#### fn into_stimulus(self) -> T

Converts `self` into `T`, while performing the appropriate scaling, rounding and clamping.
§

### impl<T> Pointable for T

§

#### const ALIGN: usize = _

The alignment of pointer.
§

#### type Init = T

The type for initializers.
§

#### unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

#### unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

#### unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

#### unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

source§

Read this value from the supplied reader. Same as `ReadEndian::read_from_little_endian()`.
source§

Read this value from the supplied reader. Same as `ReadEndian::read_from_big_endian()`.
source§

Read this value from the supplied reader. Same as `ReadEndian::read_from_native_endian()`.
source§

### impl<T> ToOwned for Twhere T: Clone,

§

#### type Owned = T

The resulting type after obtaining ownership.
source§

#### fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

#### fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

### impl<T, C> TryComponentsInto<C> for Twhere C: TryFromComponents<T>,

§

#### type Error = <C as TryFromComponents<T>>::Error

The error for when `try_into_colors` fails to cast.
source§

#### fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
source§

### impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

#### 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 Twhere U: TryFrom<T>,

§

#### 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, U> TryIntoColor<U> for Twhere U: TryFromColor<T>,

source§

#### fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an `OutOfBounds` error is returned which contains the unclamped color. Read more
source§

### impl<C, U> UintsFrom<C> for Uwhere C: IntoUints<U>,

source§

#### fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
source§

### impl<C, U> UintsInto<C> for Uwhere C: FromUints<U>,

source§

#### fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
§

§

§

### impl<T> WithSubscriber for T

§

#### fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided `Subscriber` to this type, returning a [`WithDispatch`] wrapper. Read more
§

#### fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default `Subscriber` to this type, returning a [`WithDispatch`] wrapper. Read more
source§

source§

§

§

§