/************************************************************************************************************************ *This module contain attributes used to mark components. *Currently only two attributes are supported: * - optional: mark component as optional for system update * - readonly: mark component access as read only (used for multithreading) * *By default components are required and mutable. "const" attribute can be used insteac od readonly mark. *ex. *Struct EntitiesData *{ * Comp1[] cmp; //mutable required component * @readonly @optional Comp2[] cmp2; //optional read only component * @optional const (Comp3)[] cmp3; //same as cmp2 *} */ module ecs.attributes; ///Used to mark optional components for system. enum optional = "optional"; ///Used to mark readonly components for system. "const" can be used insted. enum readonly = "readonly";