pub enum Shape {
RoundedRectangle {
top_left: RoundedCorner,
top_right: RoundedCorner,
bottom_right: RoundedCorner,
bottom_left: RoundedCorner,
},
Ellipse,
}Expand description
Shape definitions for UI components.
Shape is used by multiple components (surface, fluid_glass, sliders, progress, buttons)
to define visual outline, hit-testing, and pipeline behavior.
§Variants
Shape::RoundedRectangle– Per-corner capsule or manual radius + per-corner G2Shape::Ellipse– Ellipse filling the component bounds
§Example
use tessera_ui::dp::Dp;
use tessera_ui_basic_components::shape_def::{RoundedCorner, Shape};
// Explicit rounded rectangle
let rr = Shape::RoundedRectangle {
top_left: RoundedCorner::manual(Dp(8.0), 3.0),
top_right: RoundedCorner::manual(Dp(8.0), 3.0),
bottom_right: RoundedCorner::manual(Dp(8.0), 3.0),
bottom_left: RoundedCorner::manual(Dp(8.0), 3.0),
};
// Ellipse
let ellipse = Shape::Ellipse;
// Mixed capsule/fixed corners (left side capsule, right side explicit)
let mixed = Shape::RoundedRectangle {
top_left: RoundedCorner::Capsule, // auto radius = min(width, height) / 2
top_right: RoundedCorner::manual(Dp(8.0), 3.0),
bottom_right: RoundedCorner::manual(Dp(8.0), 3.0),
bottom_left: RoundedCorner::Capsule, // also capsule
};Variants§
RoundedRectangle
Rounded rectangle with per-corner capsule or manual radius + G2.
Fields
§
top_left: RoundedCornerTop-left corner definition.
§
top_right: RoundedCornerTop-right corner definition.
§
bottom_right: RoundedCornerBottom-right corner definition.
§
bottom_left: RoundedCornerBottom-left corner definition.
Ellipse
Ellipse fitting the component bounds.
Implementations§
Source§impl Shape
impl Shape
Sourcepub const fn rounded_rectangle(radius: Dp) -> Self
pub const fn rounded_rectangle(radius: Dp) -> Self
A helper to create a uniform rounded rectangle shape with manual corners.
Sourcepub fn resolve_for_size(self, size: PxSize) -> ResolvedShape
pub fn resolve_for_size(self, size: PxSize) -> ResolvedShape
Resolves a shape into pixel radii and per-corner G2 parameters for a given size.
Trait Implementations§
Source§impl Default for Shape
impl Default for Shape
Source§fn default() -> Self
fn default() -> Self
Returns the default shape, which is a rectangle with zero corner radius.
§Example
use tessera_ui::dp::Dp;
use tessera_ui_basic_components::shape_def::{RoundedCorner, Shape};
let default_shape = Shape::default();
assert_eq!(
default_shape,
Shape::RoundedRectangle {
top_left: RoundedCorner::manual(Dp(0.0), 3.0),
top_right: RoundedCorner::manual(Dp(0.0), 3.0),
bottom_right: RoundedCorner::manual(Dp(0.0), 3.0),
bottom_left: RoundedCorner::manual(Dp(0.0), 3.0),
}
);impl Copy for Shape
impl StructuralPartialEq for Shape
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn 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>
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)
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)
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 T
impl<T> DowncastSync for T
§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§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().