# [−][src]Struct gdk::Rectangle

```#[repr(C)]
pub struct Rectangle {
pub x: i32,
pub y: i32,
pub width: i32,
pub height: i32,
}```

Defines the position and size of a rectangle. It is identical to `cairo::RectangleInt`.

## Fields

`x: i32``y: i32``width: i32``height: i32`

## Methods

### `impl Rectangle`[src]

#### `pub fn intersect(&self, other: &Rectangle) -> Option<Rectangle>`[src]

Calculates the intersection of two rectangles. It is allowed for `dest` to be the same as either `self` or `src2`. If the rectangles do not intersect, `dest`’s width and height is set to 0 and its x and y values are undefined. If you are only interested in whether the rectangles intersect, but not in the intersecting area itself, pass `None` for `dest`.

## `src2`

a `Rectangle`

## `dest`

return location for the intersection of `self` and `src2`, or `None`

# Returns

`true` if the rectangles intersect.

#### `pub fn union(&self, other: &Rectangle) -> Rectangle`[src]

Calculates the union of two rectangles. The union of rectangles `self` and `src2` is the smallest rectangle which includes both `self` and `src2` within it. It is allowed for `dest` to be the same as either `self` or `src2`.

Note that this function does not ignore 'empty' rectangles (ie. with zero width or height).

## `src2`

a `Rectangle`

## `dest`

return location for the union of `self` and `src2`

## Blanket Implementations

### `impl<T> ToOwned for T where    T: Clone, `[src]

#### `type Owned = T`

The resulting type after obtaining ownership.

### `impl<T, U> TryFrom<U> for T where    U: Into<T>, `[src]

#### `type Error = !`

The type returned in the event of a conversion error.

### `impl<T, U> TryInto<U> for T where    U: TryFrom<T>, `[src]

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

The type returned in the event of a conversion error.