Crate entity_store_code_gen [−] [src]
Code generator for a game data store. Data is organised into "components" - eaching having a particular rust type. "Entities" - objects in the game world - are collections of components. A component can be associated with an entity by storing the id of the entity in that component's store.
A simple example:
struct EntityStore { position: HashMap<EntityId, ::cgmath::Vector2<f32>>, solid: HashSet<EntityId>, tile: HashSet<EntityId, MyTileType>, }
Note the solid
field is a HashSet
rather than a
HashMap
. Sets are used to store flags with no
associated data.
This must be used from a build script. A simple build script looks like:
extern crate entity_store_code_gen; fn main() { entity_store_code_gen::generate(include_str!("spec.toml"), "entity_store.rs").unwrap() }
Use entity_store_helper to help make use of the generated code.
Macros
generate_entity_store |
Structs
GeneratedCode |
Enums
Error | |
GenError |
Errors that can occur during code generation |
SaveError |
Errors that can occur while creating the output file |
Functions
generate |
Generates code from a given toml spec. Results are placed in OUT_DIR. Must be called from a build script. |
Type Definitions
GenResult | |
SaveResult |