Skip to main content

Coverage

Enum Coverage 

Source
pub enum Coverage {
    Empty,
    Bounded(Rect),
    Unbounded,
}
Expand description

Where an entity lands, or that it lands nowhere, or that it lands wherever it is allowed to.

Three cases rather than a rectangle, because two of them are not rectangles. Nothing drawn has no bounds to report and must not be confused with a zero-area rectangle at the origin, which is a real place. And drawPaint covers whatever the clip admits, which is unbounded until a clip says otherwise – representing that as a very large rectangle would be a number chosen by whoever wrote it, and would be wrong at some scale.

Variants§

§

Empty

Nothing is drawn.

§

Bounded(Rect)

Everything inside this rectangle, in device coordinates, may be.

§

Unbounded

Whatever the clip admits. Only a clip can bound this.

Implementations§

Source§

impl Coverage

Source

pub fn resolve(self, clip: Option<Rect>) -> Option<Rect>

The rectangle this covers, given what the clip admits.

None for nothing drawn. An unbounded coverage resolves to the clip, which is what makes an unclipped drawPaint the one case that cannot answer – the caller has to supply the target’s bounds as the clip.

Source

pub fn clipped(self, clip: Rect) -> Self

Narrow by what a clip admits.

An unbounded coverage becomes the clip, which is the whole reason the unbounded case can be carried around at all rather than being resolved where it arises.

Source

pub fn grown(self, reach: Vec2) -> Self

Grow outward by this much in each direction, in device pixels.

Growing nothing leaves nothing: a filter that reaches outward from a shape that was never drawn still draws nothing, and a blur of an empty region is empty rather than a soft patch of nowhere.

Source

pub fn union(self, other: Self) -> Self

The smallest coverage containing both.

Trait Implementations§

Source§

impl Clone for Coverage

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Coverage

Source§

impl Debug for Coverage

Source§

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

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

impl PartialEq for Coverage

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Coverage

Auto Trait Implementations§

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> 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<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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.