1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! The timeline subsystem's public surface.
//!
//! This module defines the time-varying analogue of the spatial component
//! system: the [`TimelineComponent`] trait and its builders/placement verbs,
//! the [`Placed`] / [`Triggered`] wrappers, the resolve pass, and the per-frame
//! [`Clock`]. The timeline macro arm and the container leaves
//! (`timeline_container.rs`) build on these. Every method below is implemented
//! and exercised by focused tests; the media-decode / ffmpeg integration paths
//! sit behind `#[ignore]`.
//!
//! The shape mirrors the spatial side of the library on purpose:
//!
//! | space (`raster.rs` / `builder.rs`) | time (this module) |
//! |-----------------------------------------|-----------------------------------|
//! | [`RasterComponent`](crate::raster::RasterComponent) | [`TimelineComponent`] |
//! | [`RasterBuilder`](crate::builder) | [`TimelineBuilder`] |
//! | `RasterBuilderPlacement` (`.place_at`) | [`Timed`] / [`TimedBuilder`] |
//! | `Positioned` | [`Placed`] |
//!
//! See `.sketch/01-timeline-api.rs` (ZONE A) for the target authoring API and
//! `.sketch/02-resolve-pass.md` for the resolve-pass architecture every method
//! here leans on (ownership model §3/§7, `Clock` §8, trigger table §11).
pub use Clock;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;