motiongfx/
lib.rs

1#![doc = include_str!("../README.md")]
2#![no_std]
3
4extern crate alloc;
5
6pub mod action;
7pub mod ease;
8pub mod pipeline;
9pub mod sequence;
10pub mod subject;
11pub mod timeline;
12pub mod track;
13
14// Re-exports field_path as it is essential for motiongfx to work!
15pub use field_path;
16
17pub mod prelude {
18    pub use field_path::accessor::{
19        Accessor, FieldAccessorRegistry, UntypedAccessor, accessor,
20    };
21    pub use field_path::field::{Field, UntypedField, field};
22
23    pub use crate::ThreadSafe;
24    pub use crate::action::{
25        Action, ActionBuilder, ActionId, EaseFn, InterpActionBuilder,
26        InterpFn,
27    };
28    pub use crate::ease;
29    pub use crate::pipeline::{
30        BakeCtx, Pipeline, PipelineKey, PipelineRegistry, SampleCtx,
31    };
32    pub use crate::timeline::{Timeline, TimelineBuilder};
33    pub use crate::track::{Track, TrackFragment, TrackOrdering};
34}
35
36/// Auto trait for types that implements [`Send`] + [`Sync`] +
37/// `'static`.
38pub trait ThreadSafe: Send + Sync + 'static {}
39
40impl<T> ThreadSafe for T where T: Send + Sync + 'static {}