qecs-core 0.0.17

Soon to be highly flexible Entity-Component-System framework, core lib.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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(); }
}