Skip to main content

rustmotion_core/traits/
timed.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4/// Configuration for timed visibility (start_at / end_at).
5/// Embedded via `#[serde(flatten)]` in components that support timed visibility.
6#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonSchema)]
7pub struct TimingConfig {
8    #[serde(default)]
9    pub start_at: Option<f64>,
10    #[serde(default)]
11    pub end_at: Option<f64>,
12}
13
14/// Trait for components that support timed visibility.
15pub trait Timed {
16    fn timing(&self) -> (Option<f64>, Option<f64>);
17}