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],[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.\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,"BitSetAnd","","BitSet and takes two BitSetLike items and merges the masks\nreturning a new virtual set.",null,null],[12,"0","","",0,null],[12,"1","","",0,null],[3,"BitSet","","A BitSet is a simple set designed for tracking entity indexes\nare present or not. 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 the 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","","Add a component value to the new entity.",5,null],[11,"build","","Finish entity construction.",5,null],[11,"next","","",6,null],[11,"next","","",7,null],[11,"new","","Create a new empty world.",8,{"inputs":[],"output":{"name":"world"}}],[11,"register","","Register a new component type.",8,null],[11,"unregister","","Unregister a component type.",8,null],[11,"read","","Lock a component's storage for reading.",8,null],[11,"write","","Lock a component's storage for writing.",8,null],[11,"entities","","Return the entity iterator.",8,null],[11,"dynamic_entities","","Return the dynamic entity iterator. It goes through entities that were\ndynamically created by systems but not yet merged.",8,null],[11,"create_iter","","Return the entity creation iterator. Can be used to create many\nempty entities at once without paying the locking overhead.",8,null],[11,"create_now","","Create a new entity instantly, with locking the generations data.",8,null],[11,"delete_now","","Delete a new entity instantly, with locking the generations data.",8,null],[11,"create_later","","Create a new entity dynamically.",8,null],[11,"delete_later","","Delete an entity dynamically.",8,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.",8,null],[11,"read","","Lock a component for reading.",9,null],[11,"write","","Lock a component for writing.",9,null],[11,"entities","","Return the entity iterator.",9,null],[11,"clone","","",10,null],[11,"new","","Create an empty BitSet",10,{"inputs":[],"output":{"name":"bitset"}}],[11,"with_capacity","","Create an empty BitSet with up to max Index",10,{"inputs":[{"name":"index"}],"output":{"name":"bitset"}}],[11,"add","","Add `id` to the bitset. Returning if the value was\nalready in the set before it was added",10,null],[11,"remove","","Remove `id` from the set, returns true if the value\nwas removed, returns false if the value was not set\nto begin with",10,null],[11,"contains","","Check to see if `id` was included in the set\nreturn true if it was, false otherwise",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","","Create a new storage. This is called when you register a new\ncomponent type within the world.",11,{"inputs":[],"output":{"name":"self"}}],[10,"insert","","Insert a new data for a given entity.",11,null],[10,"get","","Try reading the data associated with an entity.",11,null],[10,"get_mut","","Try mutating the data associated with an entity.",11,null],[10,"remove","","Remove 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 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 depent on the actual component type.",null,null],[10,"del","","Delete a particular entity from the storage.",12,null],[8,"UnprotectedStorage","","Used by the framework to quickly join componets",null,null],[10,"get","","Try 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","","Try 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 type\nA bitset in `specs` is hierarchal meaning that there\nare multiple levels that branch out in a tree like structure",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","","Get the index of the entity.",17,null],[11,"get_gen","","Get the generation of the entity.",17,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.",18,null],[11,"create","","Create a new entity dynamically.",18,null],[11,"delete","","Delete an entity dynamically.",18,null],[11,"new_entities","","Iterate dynamically added entities.",18,null],[11,"new","","Create a new planner, given the world and the thread count.",1,{"inputs":[{"name":"world"},{"name":"usize"}],"output":{"name":"planner"}}],[11,"run","","Run a custom system.",1,null],[11,"wait","","Wait for all the currently executed systems to finish.",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);