var searchIndex = {}; searchIndex["specs"] = {"doc":"# SPECS Parallel ECS","items":[[3,"VecStorage","specs","Vec-based storage, stores the generations of the data in\norder to match with given entities. Supposed to have maximum\nperformance for the components mostly present in entities.",null,null],[3,"HashMapStorage","","HashMap-based storage. Best suited for rare components.",null,null],[3,"World","","The `World` struct contains all the data, which is entities and their components.\nAll 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,"BitSetAnd","","`BitSetAnd` takes two `BitSetLike` items, and merges the masks\nreturning a new virtual set, which represents an intersection of the\ntwo original sets.",null,null],[12,"0","","",0,null],[12,"1","","",0,null],[3,"BitSet","","A `BitSet` is a simple set designed to track entity indices for which\na certain component exists. It does not track the `Generation` of the\nentities that it contains.",null,null],[3,"Generation","","Index generation. When a new entity is placed at an old index,\nit bumps the `Generation` by 1. This allows to avoid using components\nfrom the entities that were deleted.",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`.",1,null],[11,"del","","",2,null],[11,"new","","",2,{"inputs":[],"output":{"name":"self"}}],[11,"get","","",2,null],[11,"get_mut","","",2,null],[11,"insert","","",2,null],[11,"remove","","",2,null],[11,"open","","",2,null],[11,"open_mut","","",2,null],[11,"drop","","",3,null],[11,"del","","",3,null],[11,"new","","",3,{"inputs":[],"output":{"name":"self"}}],[11,"get","","",3,null],[11,"get_mut","","",3,null],[11,"insert","","",3,null],[11,"remove","","",3,null],[11,"open","","",3,null],[11,"open_mut","","",3,null],[11,"next","","",4,null],[11,"with","","Adds a `Component` value to the new `Entity`.",5,null],[11,"build","","Finishes entity construction.",5,null],[11,"next","","",6,null],[11,"next","","",7,null],[11,"new","","Creates a new empty `World`.",8,{"inputs":[],"output":{"name":"world"}}],[11,"register","","Registers a new component type.",8,null],[11,"unregister","","Unregisters a component type.",8,null],[11,"read","","Locks a component's storage for reading.",8,null],[11,"write","","Locks a component's storage for writing.",8,null],[11,"entities","","Returns the entity iterator.",8,null],[11,"dynamic_entities","","Returns the dynamic entity iterator. It iterates over entities that were\ndynamically created by systems but not yet merged.",8,null],[11,"create_iter","","Returns the entity creation iterator. Can be used to create many\nempty entities at once without paying the locking overhead.",8,null],[11,"create_now","","Creates a new entity instantly, locking the generations data.",8,null],[11,"delete_now","","Deletes a new entity instantly, locking the generations data.",8,null],[11,"create_later","","Creates a new entity dynamically.",8,null],[11,"delete_later","","Deletes an entity dynamically.",8,null],[11,"is_alive","","Returns `true` if the given `Entity` is alive.",8,null],[11,"merge","","Merges in the appendix, recording all the dynamically created\nand deleted entities into the persistent generations vector.\nAlso removes all the abandoned components.",8,null],[11,"read","","Locks a `Component` for reading.",9,null],[11,"write","","Locks a `Component` for writing.",9,null],[11,"entities","","Returns the entity iterator.",9,null],[11,"clone","","",10,null],[11,"new","","Creates an empty `BitSet`.",10,{"inputs":[],"output":{"name":"bitset"}}],[11,"with_capacity","","Creates an empty `BitSet`, preallocated for up to `max` indices.",10,{"inputs":[{"name":"index"}],"output":{"name":"bitset"}}],[11,"add","","Adds `id` to the `BitSet`. Returns `true` if the value was\nalready in the set.",10,null],[11,"remove","","Removes `id` from the set, returns `true` if the value\nwas removed, and `false` if the value was not set\nto begin with.",10,null],[11,"contains","","Returns `true` if `id` is in the set.",10,null],[11,"layer3","","",10,null],[11,"layer2","","",10,null],[11,"layer1","","",10,null],[11,"layer0","","",10,null],[11,"layer3","","",0,null],[11,"layer2","","",0,null],[11,"layer1","","",0,null],[11,"layer0","","",0,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],[16,"UnprotectedStorage","","Used during iterator",11,null],[10,"new","","Creates a new `Storage<T>`. This is called when you register a new\ncomponent type within the world.",11,{"inputs":[],"output":{"name":"self"}}],[10,"insert","","Inserts new data for a given `Entity`.",11,null],[10,"get","","Tries to read the data associated with an `Entity`.",11,null],[10,"get_mut","","Tries to mutate the data associated with an `Entity`.",11,null],[10,"remove","","Removes the data associated with an `Entity`.",11,null],[10,"open","","Splits the `BitSet` from the storage for use\nby the `Join` iterator.",11,null],[10,"open_mut","","Splits the `BitSet` mutably from the storage for use\nby the `Join` iterator.",11,null],[8,"StorageBase","","Base trait for a component storage that is used as a trait object.\nDoesn't depend on the actual component type.",null,null],[10,"del","","Deletes a particular `Entity` from the storage.",12,null],[8,"UnprotectedStorage","","Used by the framework to quickly join componets",null,null],[10,"get","","Tries reading the data associated with an `Entity`.\nThis is unsafe because the external set used\nto protect this storage is absent.",13,null],[10,"get_mut","","Tries mutating the data associated with an `Entity`.\nThis is unsafe because the external set used\nto protect this storage is absent.",13,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.",14,null],[8,"BitSetLike","","A generic interface for `BitSet`-like types.",null,null],[10,"layer3","","Return a u32 where each bit represents if any word in layer2\nhas been set.",15,null],[10,"layer2","","Return the u32 from the array of u32s that indicates if any\nbit has been set in layer1",15,null],[10,"layer1","","Return the u32 from the array of u32s that indicates if any\nbit has been set in layer0",15,null],[10,"layer0","","Return a u32 that maps to the direct 1:1 association with\neach index of the set",15,null],[11,"iter","","Create an iterator that will scan over the keyspace",15,null],[11,"partial_cmp","","",16,null],[11,"lt","","",16,null],[11,"le","","",16,null],[11,"gt","","",16,null],[11,"ge","","",16,null],[11,"eq","","",16,null],[11,"ne","","",16,null],[11,"cmp","","",16,null],[11,"hash","","",16,null],[11,"fmt","","",16,null],[11,"clone","","",16,null],[11,"is_alive","","Returns `true` if entities of this `Generation` are alive.",16,null],[11,"partial_cmp","","",17,null],[11,"lt","","",17,null],[11,"le","","",17,null],[11,"gt","","",17,null],[11,"ge","","",17,null],[11,"eq","","",17,null],[11,"ne","","",17,null],[11,"cmp","","",17,null],[11,"hash","","",17,null],[11,"fmt","","",17,null],[11,"clone","","",17,null],[11,"get_id","","Returns the index of the `Entity`.",17,null],[11,"get_gen","","Returns the `Generation` of the `Entity`.",17,null],[11,"fetch","","Borrows the world, allowing the system to lock some components and get the entity\niterator. Must be called only once.",18,null],[11,"create","","Creates a new entity dynamically.",18,null],[11,"delete","","Deletes an entity dynamically.",18,null],[11,"new_entities","","Returns an iterator over dynamically added entities.",18,null],[11,"new","","Creates a new planner, given the world and the thread count.",1,{"inputs":[{"name":"world"},{"name":"usize"}],"output":{"name":"planner"}}],[11,"run","","Runs a custom system.",1,null],[11,"wait","","Waits for all currently executing systems to finish, and then\nmerges all queued changes.",1,null],[11,"run0w1r","","",1,null],[11,"run0w2r","","",1,null],[11,"run1w0r","","",1,null],[11,"run1w1r","","",1,null],[11,"run1w2r","","",1,null],[11,"run1w3r","","",1,null],[11,"run1w4r","","",1,null],[11,"run1w5r","","",1,null],[11,"run1w6r","","",1,null],[11,"run1w7r","","",1,null],[11,"run2w0r","","",1,null],[11,"run2w1r","","",1,null],[11,"run2w2r","","",1,null],[11,"iter","","Create an iterator that will scan over the keyspace",15,null]],"paths":[[3,"BitSetAnd"],[3,"Planner"],[3,"HashMapStorage"],[3,"VecStorage"],[3,"EntityIter"],[3,"EntityBuilder"],[3,"CreateEntityIter"],[3,"DynamicEntityIter"],[3,"World"],[3,"FetchArg"],[3,"BitSet"],[8,"Storage"],[8,"StorageBase"],[8,"UnprotectedStorage"],[8,"Component"],[8,"BitSetLike"],[3,"Generation"],[3,"Entity"],[3,"RunArg"]]}; initSearch(searchIndex);