pub struct Switch {Show 13 fields
pub value: bool,
pub toggle_at: Option<f64>,
pub label: Option<String>,
pub width: f32,
pub height: f32,
pub track_color_on: String,
pub track_color_off: String,
pub thumb_color: String,
pub transition_duration: f64,
pub timing: TimingConfig,
pub style: CssStyle,
pub timeline: Vec<TimelineStep>,
pub stagger: Option<f32>,
}switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
Expand description
#[serde(from = "SwitchRaw")]: paint() draws the label at
self.width + 8, entirely outside the track — and, like slider and
countdown, this painter draws from its own fields (self.width/
self.height), never layout.width/layout.height, so the box
box_builder.rs assigns (css.width = Px(c.width), no label
awareness — see #127) needs to be widened to fit the label, not the
paint code changed to fit a box it doesn’t consult. Going through a raw
shadow struct lets that extra width be computed once (with the same
font metrics paint() uses) and folded into style.width before
box_builder.rs ever sees this component, without touching that file.
Fields§
§value: boolswitch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
toggle_at: Option<f64>switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
label: Option<String>switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
width: f32switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
height: f32switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
track_color_on: Stringswitch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
track_color_off: Stringswitch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
thumb_color: Stringswitch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
transition_duration: f64switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
timing: TimingConfigswitch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
style: CssStyleswitch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
timeline: Vec<TimelineStep>switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
stagger: Option<f32>switch is a frozen composition (issue #333). Compose a toggle from two shapes (track + thumb) with the thumb’s position keyframed instead — see crates/rustmotion/skills/rules/composition-recipes.md. Kept for compatibility; scheduled for removal in a future major version via rustmotion migrate (#335).
Trait Implementations§
Source§impl Animatable for Switch
impl Animatable for Switch
fn animation_effects(&self) -> &[AnimationEffect]
fn timeline_steps(&self) -> &[TimelineStep]
Source§impl<'de> Deserialize<'de> for Switch
impl<'de> Deserialize<'de> for Switch
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>,
Source§impl JsonSchema for Switch
impl JsonSchema for Switch
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl Painter for Switch
impl Painter for Switch
fn paint_content( &self, canvas: &Canvas, _layout: &BoxLayout, _props: &AnimatedProperties, ctx: &PaintCtx, )
fn intrinsic_size( &self, _available: AvailableSize, _ctx: &MeasureCtx, ) -> Option<(f32, f32)>
Auto Trait Implementations§
impl Freeze for Switch
impl RefUnwindSafe for Switch
impl Send for Switch
impl Sync for Switch
impl Unpin for Switch
impl UnsafeUnpin for Switch
impl UnwindSafe for Switch
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> ⓘ
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> ⓘ
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