var searchIndex = {}; searchIndex["specs"] = {"doc":"# SPECS Parallel ECS","items":[[3,"Storage","specs","A wrapper around the masked storage and the generations vector.\nCan be used for safe lookup of components, insertions and removes.\nThis is what `World::read/write` locks for the user.",null,null],[3,"AntiStorage","","An inverted storage type, only useful to iterate entities\nthat do not have a particular component type.",null,null],[3,"VecStorage","","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,"NullStorage","","A null storage type, used for cases where the component\ndoesn't contain any data and instead works as a simple flag.",null,null],[3,"MaskedStorage","","The `UnprotectedStorage` together with the `BitSet` that knows\nabout which elements are stored, and which are not.",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,"EntityBuilder","","Helper builder for entities.",null,null],[3,"Entities","","A custom entity guard used to hide the the fact that Generations\nis lazily created and updated. For this to be useful it _must_\nbe joined with a component. This is because the Generation table\nincludes every possible Generation of Entities even if they\nhave never been",null,null],[3,"CreateEntities","","Entity creation iterator. Will yield new empty entities infinitely.\nUseful for bulk entity construction, since the locks are only happening once.",null,null],[3,"Allocator","","Internally used structure for `Entity` allocation.",null,null],[3,"JoinIter","","`JoinIter` is an Iterator over a group of `Storages`.",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,"SystemInfo","","System information package, where the system itself is accompanied\nby its name and priority.",null,null],[12,"name","","Name of the system. Can be used for lookups or debug output.",0,null],[12,"priority","","Priority of the system.",0,null],[12,"object","","System trait object itself.",0,null],[3,"Planner","","System execution planner. Allows running systems via closures,\ndistributes the load in parallel using a thread pool.",null,null],[12,"systems","","Permanent systems in the planner.",1,null],[4,"InsertResult","","the status of an insert operation",null,null],[13,"Inserted","","The value was inserted and there was no value before",2,null],[13,"Updated","","The value was updated an already inserted value\nthe value returned is the old value",2,null],[13,"EntityIsDead","","The value failed to insert because the entity\nwas invalid",2,null],[11,"new","","Creates a new `MaskedStorage`. This is called when you register\na new component type within the world.",3,{"inputs":[],"output":{"name":"maskedstorage"}}],[11,"clear","","Clear the contents of this storage.",3,null],[11,"remove","","Remove an element by a given index.",3,null],[11,"drop","","",3,null],[11,"open","","",4,null],[11,"get","","",4,null],[11,"new","","Create a new `Storage`",5,{"inputs":[{"name":"a"},{"name":"d"}],"output":{"name":"storage"}}],[11,"get","","Tries to read the data associated with an `Entity`.",5,null],[11,"get_mut","","Tries to mutate the data associated with an `Entity`.",5,null],[11,"insert","","Inserts new data for a given `Entity`.\nReturns the result of the operation as a `InsertResult<T>`",5,null],[11,"remove","","Removes the data associated with an `Entity`.",5,null],[11,"clear","","Clears the contents of the storage.",5,null],[11,"new","","",6,{"inputs":[],"output":{"name":"self"}}],[11,"clean","","",6,null],[11,"get","","",6,null],[11,"get_mut","","",6,null],[11,"insert","","",6,null],[11,"remove","","",6,null],[11,"new","","",7,{"inputs":[],"output":{"name":"self"}}],[11,"clean","","",7,null],[11,"get","","",7,null],[11,"get_mut","","",7,null],[11,"insert","","",7,null],[11,"remove","","",7,null],[11,"new","","",8,{"inputs":[],"output":{"name":"self"}}],[11,"clean","","",8,null],[11,"get","","",8,null],[11,"get_mut","","",8,null],[11,"insert","","",8,null],[11,"remove","","",8,null],[11,"with","","Adds a `Component` value to the new `Entity`.",9,null],[11,"build","","Finishes entity construction.",9,null],[11,"is_alive","","Return `true` if the entity is alive.",10,null],[11,"next","","",11,null],[11,"new","","Creates a new empty `World`.",12,{"inputs":[],"output":{"name":"world"}}],[11,"register","","Registers a new component type.",12,null],[11,"unregister","","Unregisters a component type.",12,null],[11,"read","","Locks a component's storage for reading.",12,null],[11,"write","","Locks a component's storage for writing.",12,null],[11,"entities","","Returns the entity iterator.",12,null],[11,"create_iter","","Returns the entity creation iterator. Can be used to create many\nempty entities at once without paying the locking overhead.",12,null],[11,"create_now","","Creates a new entity instantly, locking the generations data.",12,null],[11,"delete_now","","Deletes a new entity instantly, locking the generations data.",12,null],[11,"create_later","","Creates a new entity dynamically.",12,null],[11,"delete_later","","Deletes an entity dynamically.",12,null],[11,"is_alive","","Returns `true` if the given `Entity` is alive.",12,null],[11,"maintain","","Merges in the appendix, recording all the dynamically created\nand deleted entities into the persistent generations vector.\nAlso removes all the abandoned components.",12,null],[11,"add_resource","","add a new resource to the world",12,null],[11,"has_resource","","check to see if a resource is present",12,null],[11,"read_resource","","get read-only access to an resource",12,null],[11,"write_resource","","get read-write access to a resource",12,null],[11,"new","","Create a new join iterator.",13,{"inputs":[{"name":"j"}],"output":{"name":"self"}}],[11,"next","","",13,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],[6,"Priority","","System scheduling priority. Higehr priority systems are started\nearlier than lower-priority ones.",null,null],[8,"UnprotectedStorage","","Used by the framework to quickly join componets",null,null],[10,"new","","Creates a new `Storage<T>`. This is called when you register a new\ncomponent type within the world.",14,{"inputs":[],"output":{"name":"self"}}],[10,"clean","","Clean the storage given a check to figure out if an index\nis valid or not. Allows us to safely drop the storage.",14,null],[10,"get","","Tries reading the data associated with an `Index`.\nThis is unsafe because the external set used\nto protect this storage is absent.",14,null],[10,"get_mut","","Tries mutating the data associated with an `Index`.\nThis is unsafe because the external set used\nto protect this storage is absent.",14,null],[10,"insert","","Inserts new data for a given `Index`.",14,null],[10,"remove","","Removes the data associated with an `Index`.",14,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.",15,null],[8,"Join","","The purpose of the `Join` trait is to provide a way\nto access multiple storages at the same time with\nthe merged bit set.",null,null],[16,"Type","","Type of joined components.",16,null],[16,"Value","","Type of joined storages.",16,null],[16,"Mask","","Type of joined bit mask.",16,null],[11,"iter","","Create a joined iterator over the contents.",16,null],[10,"open","","Open this join by returning the mask and the storages.",16,null],[10,"get","","Get a joined component value by a gien index.",16,{"inputs":[{"name":"value"},{"name":"index"}],"output":{"name":"type"}}],[8,"System","","Generic system that runs through the entities and do something\nwith their components, with an ability to add new entities and\ndelete existing ones.",null,null],[10,"run","","Run the system, given its context.",17,null],[11,"partial_cmp","","",18,null],[11,"lt","","",18,null],[11,"le","","",18,null],[11,"gt","","",18,null],[11,"ge","","",18,null],[11,"eq","","",18,null],[11,"ne","","",18,null],[11,"cmp","","",18,null],[11,"hash","","",18,null],[11,"fmt","","",18,null],[11,"clone","","",18,null],[11,"is_alive","","Returns `true` if entities of this `Generation` are alive.",18,null],[11,"partial_cmp","","",19,null],[11,"lt","","",19,null],[11,"le","","",19,null],[11,"gt","","",19,null],[11,"ge","","",19,null],[11,"eq","","",19,null],[11,"ne","","",19,null],[11,"cmp","","",19,null],[11,"hash","","",19,null],[11,"fmt","","",19,null],[11,"clone","","",19,null],[11,"get_id","","Returns the index of the `Entity`.",19,null],[11,"get_gen","","Returns the `Generation` of the `Entity`.",19,null],[11,"fetch","","Borrows the world, allowing the system to lock some components and get the entity\niterator. Must be called only once.",20,null],[11,"fetch_new","","Borrows the world, allowing the system to lock some components and get the entity\niterator. As an alternative to `fetch()`, it must be called only once.\nIt allows creating a number of entities instantly, returned in a vector.",20,null],[11,"create","","Creates a new entity dynamically.",20,null],[11,"delete","","Deletes an entity dynamically.",20,null],[11,"new","","Creates a new planner, given the world and the thread count.",1,{"inputs":[{"name":"world"},{"name":"usize"}],"output":{"name":"planner"}}],[11,"add_system","","Add a system to the dispatched list.",1,null],[11,"run_custom","","Runs a custom system.",1,null],[11,"mut_world","","Waits for all currently executing systems to finish, and then\nreturns the mutable borrow of the world, allowing to create\nentities instantly.",1,null],[11,"wait","","Waits for all currently executing systems to finish, and then\nmerges all queued changes.",1,null],[11,"dispatch","","Dispatch all systems according to their associated priorities.",1,null],[11,"run0w1r","","",1,null],[11,"run0w2r","","",1,null],[11,"run0w3r","","",1,null],[11,"run0w4r","","",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 a joined iterator over the contents.",16,null]],"paths":[[3,"SystemInfo"],[3,"Planner"],[4,"InsertResult"],[3,"MaskedStorage"],[3,"AntiStorage"],[3,"Storage"],[3,"HashMapStorage"],[3,"VecStorage"],[3,"NullStorage"],[3,"EntityBuilder"],[3,"Allocator"],[3,"CreateEntities"],[3,"World"],[3,"JoinIter"],[8,"UnprotectedStorage"],[8,"Component"],[8,"Join"],[8,"System"],[3,"Generation"],[3,"Entity"],[3,"RunArg"]]}; initSearch(searchIndex);