pub enum Shape {
RoundRect,
Path(PathData),
}Expand description
Shape defines the visual boundary of a layer.
Shapes are applied post-layout and affect rendering, hit-testing, and clipping.
The default shape is RoundRect, which uses the layer’s border_corner_radius attribute.
Variants§
RoundRect
Rounded rectangle shape (default).
Uses the separate border_corner_radius attribute which can be animated.
Path(PathData)
Arbitrary Skia path. The path should be defined in local coordinates relative to the layer’s bounds.
Thread-safety is handled automatically via serialization in PathData.
Implementations§
source§impl Shape
impl Shape
sourcepub fn to_path(&self, bounds: Rect, border_corner_radius: &BorderRadius) -> Path
pub fn to_path(&self, bounds: Rect, border_corner_radius: &BorderRadius) -> Path
sourcepub fn bounds(
&self,
layer_bounds: Rect,
border_corner_radius: &BorderRadius,
) -> Rect
pub fn bounds( &self, layer_bounds: Rect, border_corner_radius: &BorderRadius, ) -> Rect
Get the bounds of the shape. For hit-testing without regenerating the full path.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Shape
impl RefUnwindSafe for Shape
impl Send for Shape
impl Sync for Shape
impl Unpin for Shape
impl UnwindSafe for Shape
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
Mutably borrows from an owned value. Read more
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)
🔬This is a nightly-only experimental API. (
clone_to_uninit)§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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