use bevy_transform::prelude::Transform;
use crate::dolly::rig::RigUpdateParams;
pub trait RigDriverTraits: RigDriver + Sync + Send + std::any::Any + std::fmt::Debug {
fn as_any(&self) -> &dyn std::any::Any;
fn as_any_mut(&mut self) -> &mut dyn std::any::Any;
}
pub trait RigDriver: std::any::Any + std::fmt::Debug {
fn update(&mut self, params: RigUpdateParams) -> Transform;
}
impl<T> RigDriverTraits for T
where
T: RigDriver + std::any::Any + Sync + Send + std::fmt::Debug,
{
fn as_any(&self) -> &dyn std::any::Any {
self
}
fn as_any_mut(&mut self) -> &mut dyn std::any::Any {
self
}
}