pkecs 8.0.0

Another ECS implementation.
Documentation
use super::{entity::Entities, event::Events};

/// Defines behavior by enacting mutation upon entities.
///
/// Systems contain no state on their own and can often be represented by a function.
pub trait System {
    /// Executes the system.
    fn run(&self, entities: &mut Entities, events: &mut Events);
}

impl<TFunc> System for TFunc
    where
        TFunc: Fn(&mut Entities, &mut Events),
{
    fn run(&self, entities: &mut Entities, events: &mut Events) {
        self(entities, events);
    }
}