Enum style::values::generics::basic_shape::GenericShapeCommand
source · #[repr(C, u8)]pub enum GenericShapeCommand<Angle, LengthPercentage> {
Move {
by_to: ByTo,
point: CoordinatePair<LengthPercentage>,
},
Line {
by_to: ByTo,
point: CoordinatePair<LengthPercentage>,
},
HLine {
by_to: ByTo,
x: LengthPercentage,
},
VLine {
by_to: ByTo,
y: LengthPercentage,
},
CubicCurve {
by_to: ByTo,
point: CoordinatePair<LengthPercentage>,
control1: CoordinatePair<LengthPercentage>,
control2: CoordinatePair<LengthPercentage>,
},
QuadCurve {
by_to: ByTo,
point: CoordinatePair<LengthPercentage>,
control1: CoordinatePair<LengthPercentage>,
},
SmoothCubic {
by_to: ByTo,
point: CoordinatePair<LengthPercentage>,
control2: CoordinatePair<LengthPercentage>,
},
SmoothQuad {
by_to: ByTo,
point: CoordinatePair<LengthPercentage>,
},
Arc {
by_to: ByTo,
point: CoordinatePair<LengthPercentage>,
radii: CoordinatePair<LengthPercentage>,
arc_sweep: ArcSweep,
arc_size: ArcSize,
rotate: Angle,
},
Close,
}
Expand description
This is a more general shape(path) command type, for both shape() and path().
https://www.w3.org/TR/SVG11/paths.html#PathData https://drafts.csswg.org/css-shapes-2/#shape-function
Variants§
Move
The move command.
Line
The line command.
HLine
The hline command.
VLine
The vline command.
CubicCurve
The cubic Bézier curve command.
Fields
§
point: CoordinatePair<LengthPercentage>
§
control1: CoordinatePair<LengthPercentage>
§
control2: CoordinatePair<LengthPercentage>
QuadCurve
The quadratic Bézier curve command.
SmoothCubic
The smooth command.
SmoothQuad
The smooth quadratic Bézier curve command.
Arc
The arc command.
Fields
§
point: CoordinatePair<LengthPercentage>
§
radii: CoordinatePair<LengthPercentage>
§
rotate: Angle
Close
The closepath command.
Implementations§
source§impl GenericShapeCommand<f32, f32>
impl GenericShapeCommand<f32, f32>
sourcefn normalize(&self, state: &mut PathTraversalState) -> Self
fn normalize(&self, state: &mut PathTraversalState) -> Self
Create a normalized copy of this PathCommand. Absolute commands will be copied as-is while for relative commands an equivalent absolute command will be returned.
See discussion: https://github.com/w3c/svgwg/issues/321
sourcefn to_css_for_svg<W>(&self, dest: &mut CssWriter<'_, W>) -> Resultwhere
W: Write,
fn to_css_for_svg<W>(&self, dest: &mut CssWriter<'_, W>) -> Resultwhere
W: Write,
The serialization of the svg path.
Trait Implementations§
source§impl<Angle, LengthPercentage> Animate for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> Animate for GenericShapeCommand<Angle, LengthPercentage>
source§impl<Angle: Clone, LengthPercentage: Clone> Clone for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle: Clone, LengthPercentage: Clone> Clone for GenericShapeCommand<Angle, LengthPercentage>
source§fn clone(&self) -> GenericShapeCommand<Angle, LengthPercentage>
fn clone(&self) -> GenericShapeCommand<Angle, LengthPercentage>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<Angle, LengthPercentage> ComputeSquaredDistance for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ComputeSquaredDistance,
LengthPercentage: ComputeSquaredDistance,
impl<Angle, LengthPercentage> ComputeSquaredDistance for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ComputeSquaredDistance,
LengthPercentage: ComputeSquaredDistance,
source§fn compute_squared_distance(&self, other: &Self) -> Result<SquaredDistance, ()>
fn compute_squared_distance(&self, other: &Self) -> Result<SquaredDistance, ()>
Computes the squared distance between two animatable values.
source§impl<Angle: Debug, LengthPercentage: Debug> Debug for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle: Debug, LengthPercentage: Debug> Debug for GenericShapeCommand<Angle, LengthPercentage>
source§impl<'de, Angle, LengthPercentage> Deserialize<'de> for GenericShapeCommand<Angle, LengthPercentage>where
Angle: Deserialize<'de>,
LengthPercentage: Deserialize<'de>,
impl<'de, Angle, LengthPercentage> Deserialize<'de> for GenericShapeCommand<Angle, LengthPercentage>where
Angle: Deserialize<'de>,
LengthPercentage: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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<&GenericShapeCommand<f32, f32>> for ShapeCommand
impl From<&GenericShapeCommand<f32, f32>> for ShapeCommand
source§fn from(path: &PathCommand) -> Self
fn from(path: &PathCommand) -> Self
Converts to this type from the input type.
source§impl<Angle, LengthPercentage> MallocSizeOf for GenericShapeCommand<Angle, LengthPercentage>where
Angle: MallocSizeOf,
LengthPercentage: MallocSizeOf,
impl<Angle, LengthPercentage> MallocSizeOf for GenericShapeCommand<Angle, LengthPercentage>where
Angle: MallocSizeOf,
LengthPercentage: MallocSizeOf,
source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
source§impl<Angle: PartialEq, LengthPercentage: PartialEq> PartialEq for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle: PartialEq, LengthPercentage: PartialEq> PartialEq for GenericShapeCommand<Angle, LengthPercentage>
source§fn eq(&self, other: &GenericShapeCommand<Angle, LengthPercentage>) -> bool
fn eq(&self, other: &GenericShapeCommand<Angle, LengthPercentage>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<Angle, LengthPercentage> Serialize for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> Serialize for GenericShapeCommand<Angle, LengthPercentage>
source§impl<Angle, LengthPercentage> SpecifiedValueInfo for GenericShapeCommand<Angle, LengthPercentage>where
Angle: SpecifiedValueInfo,
LengthPercentage: SpecifiedValueInfo,
impl<Angle, LengthPercentage> SpecifiedValueInfo for GenericShapeCommand<Angle, LengthPercentage>where
Angle: SpecifiedValueInfo,
LengthPercentage: SpecifiedValueInfo,
source§const SUPPORTED_TYPES: u8 = _
const SUPPORTED_TYPES: u8 = _
Supported CssTypes by the given value type. Read more
source§impl<Angle, LengthPercentage> ToAnimatedValue for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToAnimatedValue,
LengthPercentage: ToAnimatedValue,
impl<Angle, LengthPercentage> ToAnimatedValue for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToAnimatedValue,
LengthPercentage: ToAnimatedValue,
§type AnimatedValue = GenericShapeCommand<<Angle as ToAnimatedValue>::AnimatedValue, <LengthPercentage as ToAnimatedValue>::AnimatedValue>
type AnimatedValue = GenericShapeCommand<<Angle as ToAnimatedValue>::AnimatedValue, <LengthPercentage as ToAnimatedValue>::AnimatedValue>
The type of the animated value.
source§fn from_animated_value(from: Self::AnimatedValue) -> Self
fn from_animated_value(from: Self::AnimatedValue) -> Self
Converts back an animated value into a computed value.
source§fn to_animated_value(self, context: &Context<'_>) -> Self::AnimatedValue
fn to_animated_value(self, context: &Context<'_>) -> Self::AnimatedValue
Converts this value to an animated value.
source§impl<Angle, LengthPercentage> ToAnimatedZero for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToAnimatedZero,
LengthPercentage: ToAnimatedZero,
impl<Angle, LengthPercentage> ToAnimatedZero for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToAnimatedZero,
LengthPercentage: ToAnimatedZero,
source§fn to_animated_zero(&self) -> Result<Self, ()>
fn to_animated_zero(&self) -> Result<Self, ()>
Returns a value that, when added with an underlying value, will produce the underlying
value. This is used for SMIL animation’s “by-animation” where SMIL first interpolates from
the zero value to the ‘by’ value, and then adds the result to the underlying value. Read more
source§impl<Angle, LengthPercentage> ToComputedValue for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToComputedValue,
LengthPercentage: ToComputedValue,
impl<Angle, LengthPercentage> ToComputedValue for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToComputedValue,
LengthPercentage: ToComputedValue,
§type ComputedValue = GenericShapeCommand<<Angle as ToComputedValue>::ComputedValue, <LengthPercentage as ToComputedValue>::ComputedValue>
type ComputedValue = GenericShapeCommand<<Angle as ToComputedValue>::ComputedValue, <LengthPercentage as ToComputedValue>::ComputedValue>
The computed value type we’re going to be converted to.
source§fn from_computed_value(from: &Self::ComputedValue) -> Self
fn from_computed_value(from: &Self::ComputedValue) -> Self
Convert a computed value to specified value form. Read more
source§fn to_computed_value(&self, context: &Context<'_>) -> Self::ComputedValue
fn to_computed_value(&self, context: &Context<'_>) -> Self::ComputedValue
Convert a specified value to a computed value, using itself and the data
inside the
Context
.source§impl<Angle, LengthPercentage> ToCss for ShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> ToCss for ShapeCommand<Angle, LengthPercentage>
source§impl<Angle, LengthPercentage> ToResolvedValue for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToResolvedValue,
LengthPercentage: ToResolvedValue,
impl<Angle, LengthPercentage> ToResolvedValue for GenericShapeCommand<Angle, LengthPercentage>where
Angle: ToResolvedValue,
LengthPercentage: ToResolvedValue,
§type ResolvedValue = GenericShapeCommand<<Angle as ToResolvedValue>::ResolvedValue, <LengthPercentage as ToResolvedValue>::ResolvedValue>
type ResolvedValue = GenericShapeCommand<<Angle as ToResolvedValue>::ResolvedValue, <LengthPercentage as ToResolvedValue>::ResolvedValue>
The resolved value type we’re going to be converted to.
source§fn from_resolved_value(from: Self::ResolvedValue) -> Self
fn from_resolved_value(from: Self::ResolvedValue) -> Self
Convert a resolved value to resolved value form.
source§fn to_resolved_value(self, context: &Context<'_>) -> Self::ResolvedValue
fn to_resolved_value(self, context: &Context<'_>) -> Self::ResolvedValue
Convert a resolved value to a resolved value.
source§impl<Angle, LengthPercentage> ToShmem for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> ToShmem for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle: Copy, LengthPercentage: Copy> Copy for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> StructuralPartialEq for GenericShapeCommand<Angle, LengthPercentage>
Auto Trait Implementations§
impl<Angle, LengthPercentage> Freeze for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> RefUnwindSafe for GenericShapeCommand<Angle, LengthPercentage>where
LengthPercentage: RefUnwindSafe,
Angle: RefUnwindSafe,
impl<Angle, LengthPercentage> Send for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> Sync for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> Unpin for GenericShapeCommand<Angle, LengthPercentage>
impl<Angle, LengthPercentage> UnwindSafe for GenericShapeCommand<Angle, LengthPercentage>where
LengthPercentage: UnwindSafe,
Angle: UnwindSafe,
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> 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 moresource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert