use std::any::Any;
use std::ops::DerefMut;
pub trait ServiceBase: Any + Send + Sync {
fn on_before_frame(&mut self){}
fn on_after_frame(&mut self){}
}
impl_downcast!(ServiceBase);
downcast_methods!(ServiceBase);
impl<T> ServiceBase for T
where T: DerefMut + Any + Send + Sync, T::Target: ServiceBase
{
fn on_before_frame(&mut self){ (**self).on_before_frame(); }
fn on_after_frame(&mut self){ (**self).on_after_frame(); }
}