Skip to main content

Countdown

Struct Countdown 

Source
pub struct Countdown {
Show 14 fields pub seconds: f64, pub show_hours: bool, pub show_minutes: bool, pub show_seconds: bool, pub digit_size: f32, pub digit_color: String, pub digit_background: String, pub separator_color: String, pub gap: f32, pub border_radius: f32, pub timing: TimingConfig, pub style: CssStyle, pub timeline: Vec<TimelineStep>, pub stagger: Option<f32>,
}
Expand description

#[serde(from = "CountdownRaw")]: box_builder.rs’s width formula for this component (visible * 2*box_w + (visible-1)*gap) doesn’t include the small inner gap (gap*0.3) paint() actually inserts within each digit pair — only the gap between pairs (the separator). That mismatch compounds with every extra group and is exactly what #127 measured (153×67 assigned vs. 187×68 painted). Since paint() draws from self.digit_size/self.gap, not layout.width (same pattern as switch/slider), the fix is to fold the exact formula paint() uses into style.width here, so box_builder.rs’s if css.width.is_none() never gets a chance to apply its slightly-off one.

Fields§

§seconds: f64§show_hours: bool§show_minutes: bool§show_seconds: bool§digit_size: f32§digit_color: String§digit_background: String§separator_color: String§gap: f32§border_radius: f32§timing: TimingConfig§style: CssStyle§timeline: Vec<TimelineStep>§stagger: Option<f32>

Trait Implementations§

Source§

impl Animatable for Countdown

Source§

fn animation_effects(&self) -> &[AnimationEffect]

Source§

fn timeline_steps(&self) -> &[TimelineStep]

Timed animation steps (timeline field): each step’s animations are resolved with delay += step.at. Empty by default.
Source§

impl Debug for Countdown

Source§

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

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

impl<'de> Deserialize<'de> for Countdown

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 JsonSchema for Countdown

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl Painter for Countdown

Source§

fn paint_content( &self, canvas: &Canvas, layout: &BoxLayout, _props: &AnimatedProperties, ctx: &PaintCtx, )

Paint the component’s content into the canvas. The canvas is already translated to the content-box origin and clipped if overflow: hidden was set. Generic decorations (bg, border, shadow) are already painted by the engine. Read more
Source§

fn intrinsic_size( &self, _available: AvailableSize, _ctx: &MeasureCtx, ) -> Option<(f32, f32)>

Optional intrinsic measurement for leaves like text, image, codeblock. Return None to let taffy compute the size from the CSS style alone. available mirrors taffy’s AvailableSpace.
Source§

impl Serialize for Countdown

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 Styled for Countdown

Source§

impl StyledMut for Countdown

Source§

fn style_config_mut(&mut self) -> &mut CssStyle

Source§

impl Timed for Countdown

Source§

fn timing(&self) -> (Option<f64>, Option<f64>)

Auto Trait Implementations§

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.