Skip to main content

Fill

Enum Fill 

Source
#[repr(u8)]
pub enum Fill { NonZero = 0, EvenOdd = 1, }
Expand description

Describes the rule that determines the interior portion of a shape.

This is only relevant for self-intersecting paths (e.g. an hourglass shape). For non-self-intersecting paths, both rules produce the same result.

Variants§

§

NonZero = 0

Non-zero fill rule.

All regions where the winding number of the path is not zero will be filled. This is generally more correct, but can be more expensive to implement in renderers. This matches the default behavior of the web canvas, and is the default value.

§

EvenOdd = 1

Even-odd fill rule.

All regions where the winding number of the path is odd will be filled. The most common use case for this rule is as an optimisation when the paths are known not to be self-intersecting. It is also useful for creating intentional holes in self-intersecting shapes (e.g. star or donut-like paths) or to match the SVG/Canvas even-odd fill rule. This can be implemented more efficiently than non-zero, as the winding number state can be stored in only one bit (and so the winding numbers for several pixels can be packed extremely efficiently).

Trait Implementations§

Source§

impl CheckedBitPattern for Fill

Available on crate feature bytemuck only.
Source§

type Bits = u8

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
Source§

fn is_valid_bit_pattern(bits: &u8) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
Source§

impl Clone for Fill

Source§

fn clone(&self) -> Fill

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 Contiguous for Fill

Available on crate feature bytemuck only.
Source§

const MIN_VALUE: u8

The lower inclusive bound for valid instances of this type.
Source§

const MAX_VALUE: u8

The upper inclusive bound for valid instances of this type.
Source§

type Int = u8

The primitive integer type with an identical representation to this type. Read more
Source§

fn from_integer(value: Self::Int) -> Option<Self>

If value is within the range for valid instances of this type, returns Some(converted_value), otherwise, returns None. Read more
Source§

fn into_integer(self) -> Self::Int

Perform the conversion from C into the underlying integral type. This mostly exists otherwise generic code would need unsafe for the value as integer Read more
Source§

impl Debug for Fill

Source§

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

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

impl Default for Fill

Source§

fn default() -> Fill

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

impl<'de> Deserialize<'de> for Fill

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<Fill> for Style

Source§

fn from(fill: Fill) -> Self

Converts to this type from the input type.
Source§

impl From<Fill> for StyleRef<'_>

Source§

fn from(fill: Fill) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Fill

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Fill

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Zeroable for Fill

Available on crate feature bytemuck only.
Source§

fn zeroed() -> Self

Source§

impl Copy for Fill

Source§

impl Eq for Fill

Source§

impl NoUninit for Fill

Available on crate feature bytemuck only.
Source§

impl StructuralPartialEq for Fill

Auto Trait Implementations§

§

impl Freeze for Fill

§

impl RefUnwindSafe for Fill

§

impl Send for Fill

§

impl Sync for Fill

§

impl Unpin for Fill

§

impl UnsafeUnpin for Fill

§

impl UnwindSafe for Fill

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> 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 = 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 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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,