var searchIndex = {}; searchIndex["specs"] = {"doc":"SPECS Parallel ECS\nThis library provides an ECS variant designed for parallel execution\nand convenient usage. It is highly flexible when it comes to actual\ncomponent data and the way it's stored and accessed.","items":[[3,"VecStorage","specs","Vec-based storage, actually wraps data into options and stores the generations\nof the data in order to match with given entities. Supposed to have maximum\nperformance for the components mostly present in entities.",null,null],[12,"0","","",0,null],[3,"HashMapStorage","","HashMap-based storage. Best suited for rare components.",null,null],[12,"0","","",1,null],[3,"World","","The world struct contains all the data, which is entities and their components.\nThe methods are supposed to be valid for any context they are available in.",null,null],[3,"FetchArg","","System fetch-time argument. The fetch is executed at the start of the run.\nIt contains a subset of World methods that make sense during initialization.",null,null],[3,"EntityBuilder","","Helper builder for entities.",null,null],[3,"EntityIter","","A custom entity iterator. Needed because the world doesn't really store\nentities directly, but rather has just a vector of Index -> Generation.",null,null],[3,"CreateEntityIter","","Entity creation iterator. Will yield new empty entities infinitely.\nUseful for bulk entity construction, since the locks are only happening once.",null,null],[3,"DynamicEntityIter","","A custom entity iterator for dynamically added entities.",null,null],[3,"Entity","","Entity type, as seen by the user.",null,null],[3,"RunArg","","System closure run-time argument.",null,null],[3,"Planner","","System execution planner. Allows running systems via closures,\ndistributes the load in parallel using a thread pool.",null,null],[12,"world","","Shared World.",2,null],[11,"fmt","","",0,null],[11,"del","","",0,null],[11,"new","","",0,{"inputs":[],"output":{"name":"self"}}],[11,"get","","",0,null],[11,"get_mut","","",0,null],[11,"insert","","",0,null],[11,"remove","","",0,null],[11,"fmt","","",1,null],[11,"del","","",1,null],[11,"new","","",1,{"inputs":[],"output":{"name":"self"}}],[11,"get","","",1,null],[11,"get_mut","","",1,null],[11,"insert","","",1,null],[11,"remove","","",1,null],[11,"next","","",3,null],[11,"with","","Add a component value to the new entity.",4,null],[11,"build","","Finish entity construction.",4,null],[11,"next","","",5,null],[11,"next","","",6,null],[11,"new","","Create a new empty world.",7,{"inputs":[],"output":{"name":"world"}}],[11,"register","","Register a new component type.",7,null],[11,"unregister","","Unregister a component type.",7,null],[11,"read","","Lock a component's storage for reading.",7,null],[11,"write","","Lock a component's storage for writing.",7,null],[11,"entities","","Return the entity iterator.",7,null],[11,"dynamic_entities","","Return the dynamic entity iterator. It goes through entities that were\ndynamically created by systems but not yet merged.",7,null],[11,"create_iter","","Return the entity creation iterator. Can be used to create many\nempty entities at once without paying the locking overhead.",7,null],[11,"create_now","","Create a new entity instantly, with locking the generations data.",7,null],[11,"delete_now","","Delete a new entity instantly, with locking the generations data.",7,null],[11,"create_later","","Create a new entity dynamically.",7,null],[11,"delete_later","","Delete an entity dynamically.",7,null],[11,"merge","","Merge in the appendix, recording all the dynamically created\nand deleted entities into the persistent generations vector.\nAlso removes all the abandoned components.",7,null],[11,"read","","Lock a component for reading.",8,null],[11,"write","","Lock a component for writing.",8,null],[11,"entities","","Return the entity iterator.",8,null],[6,"Generation","","Index generation. When a new entity is placed at the old index,\nit bumps the generation by 1. This allows to avoid using components\nfrom the entities that were deleted.\nG<=0 - the entity of generation G is dead\nG >0 - the entity of generation G is alive",null,null],[6,"Index","","Index type is arbitrary. It doesn't show up in any interfaces.\nKeeping it 32bit allows for a single 64bit word per entity.",null,null],[8,"Storage","","Typed component storage trait.",null,null],[10,"new","","Create a new storage. This is called when you register a new\ncomponent type within the world.",9,{"inputs":[],"output":{"name":"self"}}],[10,"get","","Try reading the data associated with an entity.",9,null],[10,"get_mut","","Try mutating the data associated with an entity.",9,null],[10,"insert","","Insert a new data for a given entity.",9,null],[10,"remove","","Remove the data associated with an entity.",9,null],[8,"StorageBase","","Base trait for a component storage that is used as a trait object.\nDoesn't depent on the actual component type.",null,null],[10,"del","","Delete a particular entity from the storage.",10,null],[8,"Component","","Abstract component type. Doesn't have to be Copy or even Clone.",null,null],[16,"Storage","","Associated storage type for this component.",11,null],[11,"partial_cmp","","",12,null],[11,"lt","","",12,null],[11,"le","","",12,null],[11,"gt","","",12,null],[11,"ge","","",12,null],[11,"eq","","",12,null],[11,"ne","","",12,null],[11,"cmp","","",12,null],[11,"hash","","",12,null],[11,"fmt","","",12,null],[11,"clone","","",12,null],[11,"get_id","","Get the index of the entity.",12,null],[11,"get_gen","","Get the generation of the entity.",12,null],[11,"fetch","","Borrows the world, allowing the system lock some components and get the entity\niterator. Has to be called only once. Fires a pulse at the end.",13,null],[11,"create","","Create a new entity dynamically.",13,null],[11,"delete","","Delete an entity dynamically.",13,null],[11,"new_entities","","Iterate dynamically added entities.",13,null],[11,"new","","Create a new planner, given the world and the thread count.",2,{"inputs":[{"name":"world"},{"name":"usize"}],"output":{"name":"planner"}}],[11,"run","","Run a custom system.",2,null],[11,"wait","","Wait for all the currently executed systems to finish.",2,null],[11,"run0w1r","","",2,null],[11,"run0w2r","","",2,null],[11,"run1w0r","","",2,null],[11,"run1w1r","","",2,null],[11,"run1w2r","","",2,null],[11,"run1w3r","","",2,null],[11,"run1w4r","","",2,null],[11,"run1w5r","","",2,null],[11,"run1w6r","","",2,null],[11,"run1w7r","","",2,null],[11,"run2w0r","","",2,null],[11,"run2w1r","","",2,null],[11,"run2w2r","","",2,null]],"paths":[[3,"VecStorage"],[3,"HashMapStorage"],[3,"Planner"],[3,"EntityIter"],[3,"EntityBuilder"],[3,"CreateEntityIter"],[3,"DynamicEntityIter"],[3,"World"],[3,"FetchArg"],[8,"Storage"],[8,"StorageBase"],[8,"Component"],[3,"Entity"],[3,"RunArg"]]}; initSearch(searchIndex);