#[cfg(feature = "facet")]
use facet::Facet;
#[cfg(feature = "builtin-types")]
use function_name::named;
#[cfg(feature = "rkyv")]
use rkyv::{Archive, Deserialize as RkyvDeserialize, Serialize as RkyvSerialize};
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use smallvec::SmallVec;
use std::fmt::Debug;
use std::hash::Hash;
#[cfg(feature = "builtin-types")]
use std::hash::Hasher;
#[cfg(feature = "builtin-types")]
mod macros;
#[cfg(feature = "builtin-types")]
use macros::impl_sample_for_value;
#[cfg(feature = "builtin-types")]
pub mod math;
#[cfg(feature = "builtin-types")]
mod animated_data;
#[cfg(feature = "builtin-types")]
mod data;
#[cfg(feature = "builtin-types")]
mod data_types;
#[cfg(feature = "builtin-types")]
mod token_value_map;
#[cfg(feature = "builtin-types")]
mod value;
mod define_data_macro;
mod generic_token_value_map;
mod generic_value;
mod traits;
#[cfg(feature = "curves")]
mod position;
mod token;
#[cfg(feature = "egui-keyframe")]
mod egui_keyframe_integration;
mod error;
#[cfg(feature = "interpolation")]
mod interpolation;
#[cfg(all(feature = "lua", feature = "builtin-types"))]
mod lua;
mod shutter;
mod time_data_map;
#[cfg(feature = "builtin-types")]
pub use animated_data::*;
#[cfg(feature = "builtin-types")]
pub use data::*;
#[cfg(feature = "builtin-types")]
pub use data_types::*;
#[cfg(feature = "builtin-types")]
pub use token_value_map::*;
#[cfg(feature = "builtin-types")]
pub use value::*;
pub use error::*;
pub use generic_token_value_map::*;
pub use generic_value::*;
#[cfg(feature = "interpolation")]
pub use interpolation::*;
#[cfg(all(feature = "lua", feature = "builtin-types"))]
pub use lua::*;
#[cfg(feature = "curves")]
pub use position::*;
pub use shutter::*;
pub use time_data_map::*;
pub use token::*;
pub use traits::*;
pub type Time = frame_tick::Tick;
#[cfg(feature = "builtin-types")]
pub trait DataTypeOps {
fn data_type(&self) -> DataType;
fn type_name(&self) -> &'static str;
}
#[cfg(feature = "builtin-types")]
impl DataTypeOps for Value {
fn data_type(&self) -> DataType {
match self {
Value::Uniform(data) => data.data_type(),
Value::Animated(animated_data) => animated_data.data_type(),
}
}
fn type_name(&self) -> &'static str {
match self {
Value::Uniform(data) => data.type_name(),
Value::Animated(animated_data) => animated_data.type_name(),
}
}
}