Crate recs [−] [src]
Simple entity-component system. Pure Rust (macro-free)!
Example
extern crate recs; use recs::{Ecs, EntityId}; #[derive(Clone, PartialEq)] struct Age{years: u32} #[derive(Clone, PartialEq)] struct Brain{iq: i32} fn main() { // Create an ECS instance let mut ecs: Ecs = Ecs::new(); // Add entity to the system let me: EntityId = ecs.create_entity(); // Attach component to the entity ecs.set(me, &Age{years: 22}); // Get attached component data from entity let older = ecs.get::<Age>(me).unwrap().years + 1; // Modify an entity's component ecs.set(me, &Age{years: older}); // It works! assert!(ecs.get::<Age>(me) == Some(Age{years: 23})); assert!(ecs.get::<Brain>(me) == None); // Aw man... }
Structs
ComponentIter |
Iterator that yields references to ECS components. |
ComponentIterMut |
Iterator that yields mutable references to ECS components. |
Ecs |
Primary data structure containing entity and component data. |
EntityIdIter |
Iterator for entity IDs. |
Type Definitions
EntityId |
Value type representing an entry in the entity-component system. |